Improve the test browser.test_emscripten_main_loop to detect a current bug when rAF calls can stack up even though an attempt has been made to cancel them.
When the main loop should pause after running a tick, don't update the SDL audio queue.
Fix a bug where multiple rAF-based frame update loops could stack on top of each other and run in parallel. This fixes the additions to the test from before.
Implement support for setting a swap interval on the main loop update rate via the function emscripten_set_main_loop_interval. Add test and documentation.
Implement support for eglSwapInterval and add test.
Implement glfwSwapInterval.
Implement functions SDL_GL_SetSwapInterval and SDL_GL_GetSwapInterval. Add function emscripten_get_main_loop_interval().
Fix an OpenAL audio streaming bug where switching tabs in a browser would produce a temporary workload spike, and would cause an OpenAL buffer update to be delayed enough to starve, generating an audible glitch sound before the audio stream pauses.
Rename emscripten_set_main_loop_interval to emscripten_set_main_loop_timing and add mode parameter to specify the main loop timing mode.
Fix test_egl
Fix resuming the main loop.
Clarify documentation on how emscripten_set_main_loop and emscripten_set_main_loop_timing interact.
Merge pull request #2839 from juj/main_loop_scheduling

Main loop scheduling