Owns the fiber queue TeaVM would otherwise hand to setTimeout.
On the WebAssembly GC backend EventQueue's own heap is bypassed: Thread.start,
Thread.sleep and every @Async suspension go straight out through the teavmAsync.offer
import, and the exported teavm_processQueue stays empty for the module's whole life. So
draining the queue means running the callbacks the host was handed, and owning them is what
makes that possible inside a request: a setTimeout still outstanding when a handler returns
is cancelled unless something holds the request open.
Owns the fiber queue TeaVM would otherwise hand to
setTimeout.On the WebAssembly GC backend
EventQueue's own heap is bypassed:Thread.start,Thread.sleepand every@Asyncsuspension go straight out through theteavmAsync.offerimport, and the exportedteavm_processQueuestays empty for the module's whole life. So draining the queue means running the callbacks the host was handed, and owning them is what makes that possible inside a request: asetTimeoutstill outstanding when a handler returns is cancelled unless something holds the request open.