Как использовать изолировать-> terminateExecution для остановки всех потоков - PullRequest
0 голосов
/ 08 июля 2020

Я понимаю, что isolate->terminateExecution() только завершает текущий поток. Я видел несколько предложений по использованию v8::Locker для распространения и завершения всех потоков, однако я не уверен, как это должно работать.

Я использую v8 версии 8.1.

1 Ответ

1 голос
/ 08 июля 2020

Только один поток может быть активным в изолированном объекте в любое время, поэтому есть только один поток, который нужно завершить.

Если ваше приложение имеет несколько потоков, то есть два возможных сценария ios:

  • либо ваши потоки по очереди входят в этот Isolate, и в этом случае у вас уже должны быть Lockers. Вы должны иметь возможность без особых проблем добавить свой собственный стробирующий / бухгалтерский учет (например, иметь глобальный флаг, который указывает, что «один поток запросил завершение общего изолята, поэтому ни одному потоку больше не разрешено вводить его»).
  • или каждый из ваших потоков имеет свой собственный Isolate, и в этом случае каждый из них должен вызывать TerminateExecution индивидуально.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...