aboutsummaryrefslogtreecommitdiff
path: root/src/preamble.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-08-28 11:38:29 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-08-28 11:38:29 -0700
commitf67ad608988b5a45b2f222f35a4806eb5f470003 (patch)
tree9895619099104692609a323254e43bbf7cdbda7e /src/preamble.js
parent4499c52fcaa709466520f6224fbe7414cfa246d7 (diff)
log out unfulfilled run dependencies every few seconds
Diffstat (limited to 'src/preamble.js')
-rw-r--r--src/preamble.js29
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;