on arduino, we have several libraries to make multi thread on esp8266 and esp32:
- ESP8266Scheduler provides multi threads with a circular priority and with 2 interesting features: Yield and Delay..
with Yield, you can interrupt a thread to start (or continue) an other before to continue first thread later depending of priority.
Delay is similar to Yield but with a delay before to continue the thread. => it is a no blocking Delay
=> in some complex cases, with keyboard, display, several sensors, MQTT or HTTP links, it can help a lot
i tested with arduino, it is working well.
i created a wrapper for B4R and did some tests: multi thread is working on B4R but Yield and Delay are not working, i have a reset.
Yield/Delay are based on cont.h and cont.s : it is a library to save processor registers and stack, and to recover both when thread is restarted where it was stopped.
From tests done, it seems cont.s is not compatible with B4R. I suppose issue is around B4R stack, but i didn't understand more !
I think it can be useful to have it working on B4R. If someone can help, he will be welcome.