aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-07-13 10:58:05 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-07-13 10:58:05 -0700
commit7f34950cc7814da0fc3a14dff5dead6d9fc41eab (patch)
tree3def63c73fb899f7b62c63d27015bfa8c9c49e3d
parent1b15a1c44bc4631dc293834bd8f17f61155c3d03 (diff)
emscripten_push_main_loop_blocker improvements
-rw-r--r--src/library_browser.js2
-rw-r--r--system/include/emscripten/emscripten.h6
2 files changed, 7 insertions, 1 deletions
diff --git a/src/library_browser.js b/src/library_browser.js
index 4c26037e..f12e966e 100644
--- a/src/library_browser.js
+++ b/src/library_browser.js
@@ -223,7 +223,7 @@ mergeInto(LibraryManager.library, {
var wrapper = function() {
if (Browser.mainLoop.queue.length > 0) {
Browser.mainLoop.queue.shift()();
- Browser.mainLoop.scheduler();
+ setTimeout(wrapper, 0);
return;
}
if (Browser.mainLoop.shouldPause) {
diff --git a/system/include/emscripten/emscripten.h b/system/include/emscripten/emscripten.h
index 575c3e2a..9bc6c410 100644
--- a/system/include/emscripten/emscripten.h
+++ b/system/include/emscripten/emscripten.h
@@ -52,7 +52,13 @@ extern void emscripten_cancel_main_loop();
* Add a function to a queue of events that will execute
* before the main loop will continue.
*/
+#if EMSCRIPTEN
extern void emscripten_push_main_loop_blocker(void (*func)());
+#else
+inline void emscripten_push_main_loop_blocker(void (*func)()) {
+ func();
+}
+#endif
/*
* Call a C function asynchronously, that is, after returning