在V8 JavaScript引擎中,方法Locker::IsLocked(Isolate* isolate)
检查"给定隔离的锁定器是否被当前线程锁定。"
有没有办法检查隔离是否被任何线程锁定以防止线程阻塞?
答案 0 :(得分:1)
据我所知,V8隔离区不提供公开try_lock
操作,因此您必须使用std::mutex
或类似内容:
std::mutex mutex;
// ...
if (mutex.try_lock())
{
std::lock_guard<std::mutex> guard(mutex, std::adopt_lock);
v8::Locker locker(isolate);
// ...
}
不幸的是,你必须在使用隔离区的任何地方都遵循这种模式。祝你好运!