• Someone else asked this in http://forum.espruino.com/conversations/­371207/#comment16338013

    MEMORY_BUSY happens when something is happening to the variable store which keeps it busy (that usually means garbage collection) and a new variable is requested from inside an interrupt.

    It's a flag (E.getErrorFlags) that gets set when the error happens (as it may be in some code that executes in a place where data can't be output to the console) and next time around the idle loop the interpreter picks it up and displays the message.

    It should be extremely rare especially on Bangle.js 2, so it'd be great if you could find a way to reliably reproduce it. It's possible you have some app that is forcing a garbage collect which is making it more of a problem though? On Bangle.js 2 GC passes should be super rare given the amount of RAM available.

    Ideally you could post up the simplest possible test case? I guess it's possible that if you're allocating a big graphics buffer each time you render, eventually Bangle.js has to defragment? Even so, vars should usually not need to be allocated in IRQs


Avatar for Gordon @Gordon started