I'd always put retry invocations to and/or within self into a setTimeout() in order to 'loose' context... and let resources go... yes, it may be in a callback, but still, code-connected things/references keep things a-life and resources blocked...
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
I'd always put retry invocations to and/or within self into a setTimeout() in order to 'loose' context... and let resources go... yes, it may be in a callback, but still, code-connected things/references keep things a-life and resources blocked...