diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-08-28 11:38:29 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-08-28 11:38:29 -0700 |
commit | f67ad608988b5a45b2f222f35a4806eb5f470003 (patch) | |
tree | 9895619099104692609a323254e43bbf7cdbda7e /src/preamble.js | |
parent | 4499c52fcaa709466520f6224fbe7414cfa246d7 (diff) |
log out unfulfilled run dependencies every few seconds
Diffstat (limited to 'src/preamble.js')
-rw-r--r-- | src/preamble.js | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/preamble.js b/src/preamble.js index 7abe0db8..a8f19d64 100644 --- a/src/preamble.js +++ b/src/preamble.js @@ -795,6 +795,7 @@ var STRING_TABLE = []; var runDependencies = 0; var runDependencyTracking = {}; var calledRun = false; +var runDependencyWatcher = null; function addRunDependency(id) { runDependencies++; if (Module['monitorRunDependencies']) { @@ -803,6 +804,24 @@ function addRunDependency(id) { if (id) { assert(!runDependencyTracking[id]); runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(function() { + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + Module.printErr('still waiting on run dependencies:'); + } + Module.printErr('dependency: ' + dep); + } + if (shown) { + Module.printErr('(end of list)'); + } + }, 6000); + } + } else { + Module.printErr('warning: run dependency added without ID'); } } Module['addRunDependency'] = addRunDependency; @@ -814,8 +833,16 @@ function removeRunDependency(id) { if (id) { assert(runDependencyTracking[id]); delete runDependencyTracking[id]; + } else { + Module.printErr('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (!calledRun) run(); } - if (runDependencies == 0 && !calledRun) run(); } Module['removeRunDependency'] = removeRunDependency; |