Determine GSource priority of promise resolution
Currently we resolve promises in an idle handler which is queued whenever a promise job is ready to call its callback. We also resolve unconditionally after any gjs_context_eval()
call (which corresponds to the JS program finishing.)
The idle handler has priority G_PRIORITY_DEFAULT_IDLE
(200) and in GJS 1.48.x I've seen it get starved out when something else is spamming the main loop with expose events at G_PRIORITY_DEFAULT
(0). I have yet to confirm this in 1.50.x, but I assume it could still be a problem.
Determine whether the current priority is correct, and whether we should resolve promises at other times (after calling into JS from C?) or through another means (a custom GSource
?)
Edited by Philip Chimento