1

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

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

4

1 回答 1

2

据我所知,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);
    // ...
}

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

于 2013-06-11T12:40:37.523 回答