Синхронно ждать сообщения в Web-Worker
======================================

Есть ли способ синхронно ждать или проверять новое сообщение в веб-работнике?

У меня большой сложный код (скомпилированный LLVM из emscripten), который я не могу реорганизовать с помощью обратных вызовов.

Мне нужно убедиться, что код после определенной строки не будет выполняться, пока я не получу и не обработаю сообщение из потока пользовательского интерфейса. Если я блокирую с помощью цикла while, цикл обработки событий никогда не запускается, поэтому я не могу получать сообщения.

 к сожалению. Были некоторые обсуждения о добавлении способа блокировать сообщение с родительской страницы, но это ни к чему не привело. Я посмотрю, смогу ли я найти соответствующую ветку списка рассылки.



 такого как API-интерфейс FileSystem, и использование временного файла в качестве механизма синхронизации.

В вашем примере код emscripten может выдавать синхронное чтение файла, в то время как поток пользовательского интерфейса записывает в тот же файл, эффективно разблокируя работника.



ринга?

Событие onmessage будет заблокировано до тех пор, пока не будет завершен стек выполнения начального шага, а критические биты пользовательского интерфейса будут запускаться только тогда, когда информация доступна.