检查Isolate是否锁定在V8中

时间:2013-06-10 02:36:54

标签: v8

在V8 JavaScript引擎中,方法Locker::IsLocked(Isolate* isolate)检查"给定隔离的锁定器是否被当前线程锁定。"

有没有办法检查隔离是否被任何线程锁定以防止线程阻塞?

1 个答案:

答案 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);
    // ...
}

不幸的是,你必须在使用隔离区的任何地方都遵循这种模式。祝你好运!