Возвращает ли coroutine.yield () управление обратно SDK в прошивке NodeMCU eLua? - PullRequest
0 голосов
/ 23 мая 2018

Я читал https://nodemcu.readthedocs.io/en/master/en/lua-developer-faq/#esp8266-specifics, и в документе говорится, что код Lua должен быть возвращен, чтобы SDK мог выполнять другие задачи:

Вся остальная обработка служб и приложений разделенав блоки выполнения кода, известные как задачи.Отдельные задачи выполняются по одному и выполняются до конца.Ни одна задача никогда не сможет заменить другую.

и

Библиотеки Lua работают совместно с SDK, чтобы ставить в очередь ожидающие события и вызывать любые зарегистрированные подпрограммы обратного вызова Lua, которыезатем непрерывно запускается до завершения.

Затем PiL говорит, что yield может использоваться для приостановки вызовов функций, которые могут быть возобновлены позже:

Реальная сила сопрограмм проистекает изФункция yield, позволяющая работающей сопрограмме приостановить выполнение и возобновить ее позднее.

Мой вопрос: возвращает ли реализация eLua NodeMCU элемент управления SDK при выполнении coroutine.yield(c)?... Так что было бы возможно реализовать совместные многопоточные алгоритмы с NodeMCU / eLua firwmare?

Как coroutine.resume(c) будет работать в этом контексте?

...