2013-06-10 2 views
1

В JavaScript-движке V8 метод Locker::IsLocked(Isolate* isolate) проверяет, заблокирован ли блокиратор для данного изолята текущим потоком. "Проверьте, заблокирован ли изолятор в V8

Есть ли способ проверить, заблокирован ли изолятор какой-либо нить, чтобы предотвратить блокирование потоков?

+0

Если ответ «Нет», можно использовать 'boost :: mutex'es, но проверка V8 API на мой взгляд намного более чистая. – Vortico

ответ

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

К сожалению, вы должны будете следовать этому образцу везде вы используете изоляцию. Удачи!

Смежные вопросы