Rename callUserCallback to callFromEventLoop
This is to better reflect the usage of this function, which is designed
to be a wrapper around calling into application code from the event
loop.
The old `callUserCallback` callback name is still available as an alias.
diff --git a/src/Fetch.js b/src/Fetch.js
index 17bba7f..c259cd6 100644
--- a/src/Fetch.js
+++ b/src/Fetch.js
@@ -458,7 +458,7 @@
if (fetchAttrSynchronous) {
f();
} else {
- callUserCallback(f);
+ callFromEventLoop(f);
}
}
diff --git a/src/library.js b/src/library.js
index 9f7f33d..b17211f 100644
--- a/src/library.js
+++ b/src/library.js
@@ -2275,10 +2275,10 @@
},
// http://pubs.opengroup.org/onlinepubs/000095399/functions/alarm.html
- alarm__deps: ['raise', '$callUserCallback'],
+ alarm__deps: ['raise', '$callFromEventLoop'],
alarm: function(seconds) {
setTimeout(function() {
- callUserCallback(function() {
+ callFromEventLoop(function() {
_raise({{{ cDefine('SIGALRM') }}});
});
}, seconds*1000);
@@ -3488,12 +3488,12 @@
// The job of this wrapper is the handle emscripten-specfic exceptions such
// as ExitStatus and 'unwind' and prevent these from escaping to the top
// level.
- $callUserCallback__deps: ['$handleException',
+ $callFromEventLoop__deps: ['$handleException',
#if EXIT_RUNTIME || USE_PTHREADS
'$maybeExit',
#endif
],
- $callUserCallback: function(func) {
+ $callFromEventLoop: function(func) {
#if EXIT_RUNTIME
if (runtimeExited || ABORT) {
#else
@@ -3545,18 +3545,18 @@
},
#else
// MINIMAL_RUNTIME doesn't support the runtimeKeepalive stuff
- $callUserCallback: function(func) {
+ $callFromEventLoop: function(func) {
func();
},
#endif
- $safeSetTimeout__deps: ['$callUserCallback'],
+ $safeSetTimeout__deps: ['$callFromEventLoop'],
$safeSetTimeout__docs: '/** @param {number=} timeout */',
$safeSetTimeout: function(func, timeout) {
{{{ runtimeKeepalivePush() }}}
return setTimeout(function() {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(func);
+ callFromEventLoop(func);
}, timeout);
},
@@ -3664,6 +3664,11 @@
err('done preloading data files');
#endif
},
+
+#if LEGACY_RUNTIME
+ // Legacy name for callFromEventLoop
+ $callUserCallback: '$callFromEventLoop',
+#endif
});
function autoAddDeps(object, name) {
diff --git a/src/library_async.js b/src/library_async.js
index 8ccffcc..ca0dba3 100644
--- a/src/library_async.js
+++ b/src/library_async.js
@@ -20,7 +20,7 @@
},
#if ASYNCIFY
- $Asyncify__deps: ['$runAndAbortIfError', '$callUserCallback', '$sigToWasmTypes',
+ $Asyncify__deps: ['$runAndAbortIfError', '$callFromEventLoop', '$sigToWasmTypes',
#if !MINIMAL_RUNTIME
'$runtimeKeepalivePush', '$runtimeKeepalivePop'
#endif
@@ -420,7 +420,7 @@
_free(Asyncify.currData);
Asyncify.currData = null;
// Call all sleep callbacks now that the sleep-resume is all done.
- Asyncify.sleepCallbacks.forEach((func) => callUserCallback(func));
+ Asyncify.sleepCallbacks.forEach((func) => callFromEventLoop(func));
} else {
abort('invalid state: ' + Asyncify.state);
}
diff --git a/src/library_browser.js b/src/library_browser.js
index b819e53..78f3b1f 100644
--- a/src/library_browser.js
+++ b/src/library_browser.js
@@ -8,7 +8,7 @@
var LibraryBrowser = {
$Browser__deps: [
'$setMainLoop',
- '$callUserCallback',
+ '$callFromEventLoop',
'$safeSetTimeout',
'$warnOnce',
'emscripten_set_main_loop_timing',
@@ -91,7 +91,7 @@
return; // |return false| skips a frame
}
}
- callUserCallback(func);
+ callFromEventLoop(func);
if (Module['postMainLoop']) Module['postMainLoop']();
}
},
@@ -516,7 +516,7 @@
{{{ runtimeKeepalivePush() }}}
return Browser.requestAnimationFrame(function() {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(func);
+ callFromEventLoop(func);
});
},
diff --git a/src/library_dylink.js b/src/library_dylink.js
index 9731c02..8f1822c 100644
--- a/src/library_dylink.js
+++ b/src/library_dylink.js
@@ -964,7 +964,7 @@
},
// Async version of dlopen.
- _emscripten_dlopen_js__deps: ['$dlopenInternal', '$callUserCallback', '$dlSetError'],
+ _emscripten_dlopen_js__deps: ['$dlopenInternal', '$callFromEventLoop', '$dlSetError'],
_emscripten_dlopen_js__sig: 'viiiii',
_emscripten_dlopen_js: function(handle, onsuccess, onerror) {
/** @param {Object=} e */
@@ -972,11 +972,11 @@
var filename = UTF8ToString({{{ makeGetValue('handle', C_STRUCTS.dso.name, '*') }}});
dlSetError('Could not load dynamic lib: ' + filename + '\n' + e);
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function () { {{{ makeDynCall('vi', 'onerror') }}}(handle); });
+ callFromEventLoop(function () { {{{ makeDynCall('vi', 'onerror') }}}(handle); });
}
function successCallback() {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function () { {{{ makeDynCall('vii', 'onsuccess') }}}(handle); });
+ callFromEventLoop(function () { {{{ makeDynCall('vii', 'onsuccess') }}}(handle); });
}
{{{ runtimeKeepalivePush() }}}
diff --git a/src/library_eventloop.js b/src/library_eventloop.js
index a8f9c3c..b10e0fd 100644
--- a/src/library_eventloop.js
+++ b/src/library_eventloop.js
@@ -70,13 +70,13 @@
// emscripten_set_immediate_loop() if application links to both of them.
},
- emscripten_set_immediate__deps: ['$polyfillSetImmediate', '$callUserCallback'],
+ emscripten_set_immediate__deps: ['$polyfillSetImmediate', '$callFromEventLoop'],
emscripten_set_immediate: function(cb, userData) {
polyfillSetImmediate();
{{{ runtimeKeepalivePush(); }}}
return emSetImmediate(function() {
{{{ runtimeKeepalivePop(); }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
{{{ makeDynCall('vi', 'cb') }}}(userData);
});
});
@@ -88,12 +88,12 @@
emClearImmediate(id);
},
- emscripten_set_immediate_loop__deps: ['$polyfillSetImmediate', '$callUserCallback'],
+ emscripten_set_immediate_loop__deps: ['$polyfillSetImmediate', '$callFromEventLoop'],
emscripten_set_immediate_loop: function(cb, userData) {
polyfillSetImmediate();
function tick() {
{{{ runtimeKeepalivePop(); }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
if ({{{ makeDynCall('ii', 'cb') }}}(userData)) {
{{{ runtimeKeepalivePush(); }}}
emSetImmediate(tick);
@@ -104,12 +104,12 @@
return emSetImmediate(tick);
},
- emscripten_set_timeout__deps: ['$callUserCallback'],
+ emscripten_set_timeout__deps: ['$callFromEventLoop'],
emscripten_set_timeout: function(cb, msecs, userData) {
{{{ runtimeKeepalivePush() }}}
return setTimeout(function() {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
{{{ makeDynCall('vi', 'cb') }}}(userData);
});
}, msecs);
@@ -119,13 +119,13 @@
clearTimeout(id);
},
- emscripten_set_timeout_loop__deps: ['$callUserCallback'],
+ emscripten_set_timeout_loop__deps: ['$callFromEventLoop'],
emscripten_set_timeout_loop: function(cb, msecs, userData) {
function tick() {
var t = performance.now();
var n = t + msecs;
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
if ({{{ makeDynCall('idi', 'cb') }}}(t, userData)) {
// Save a little bit of code space: modern browsers should treat
// negative setTimeout as timeout of 0
@@ -139,11 +139,11 @@
return setTimeout(tick, 0);
},
- emscripten_set_interval__deps: ['$callUserCallback'],
+ emscripten_set_interval__deps: ['$callFromEventLoop'],
emscripten_set_interval: function(cb, msecs, userData) {
{{{ runtimeKeepalivePush() }}}
return setInterval(function() {
- callUserCallback(function() {
+ callFromEventLoop(function() {
{{{ makeDynCall('vi', 'cb') }}}(userData)
});
}, msecs);
diff --git a/src/library_fetch.js b/src/library_fetch.js
index 07b909f..c9c6ab0 100644
--- a/src/library_fetch.js
+++ b/src/library_fetch.js
@@ -31,7 +31,7 @@
emscripten_start_fetch__deps: [
'$Fetch',
'$fetchXHR',
- '$callUserCallback',
+ '$callFromEventLoop',
#if FETCH_SUPPORT_INDEXEDDB
'$fetchCacheData',
'$fetchLoadCachedData',
diff --git a/src/library_glfw.js b/src/library_glfw.js
index d585608..efd8137 100644
--- a/src/library_glfw.js
+++ b/src/library_glfw.js
@@ -80,7 +80,7 @@
},
$GLFW__deps: ['emscripten_get_now', '$GL', '$Browser', '$GLFW_Window',
- '$callUserCallback',
+ '$callFromEventLoop',
'$allocateUTF8',
#if FILESYSTEM
'$FS',
@@ -591,7 +591,7 @@
if (!GLFW.active.windowSizeFunc) return;
- callUserCallback(function() {
+ callFromEventLoop(function() {
#if USE_GLFW == 2
{{{ makeDynCall('vii', 'GLFW.active.windowSizeFunc') }}}(GLFW.active.width, GLFW.active.height);
#endif
@@ -607,7 +607,7 @@
if (!GLFW.active.framebufferSizeFunc) return;
- callUserCallback(function() {
+ callFromEventLoop(function() {
#if USE_GLFW == 3
{{{ makeDynCall('viii', 'GLFW.active.framebufferSizeFunc') }}}(GLFW.active.id, GLFW.active.width, GLFW.active.height);
#endif
diff --git a/src/library_pthread.js b/src/library_pthread.js
index a205913..a0857a2 100644
--- a/src/library_pthread.js
+++ b/src/library_pthread.js
@@ -998,7 +998,7 @@
Atomics.store(HEAP32, queue >> 2, {{{ cDefine('NOTIFICATION_RECEIVED') }}});
// Only execute the queue if we have a live pthread runtime. We
// implement pthread_self to return 0 if there is no live runtime.
- // TODO: Use `callUserCallback` to correctly handle unwinds, etc. once
+ // TODO: Use `callFromEventLoop` to correctly handle unwinds, etc. once
// `runtimeExited` is correctly unset on workers.
if (_pthread_self()) {
__emscripten_proxy_execute_task_queue(queue);
diff --git a/src/library_webgpu.js b/src/library_webgpu.js
index 69ba39b..1a0c433 100644
--- a/src/library_webgpu.js
+++ b/src/library_webgpu.js
@@ -753,13 +753,13 @@
device["pushErrorScope"](WebGPU.ErrorFilter[filter]);
},
- wgpuDevicePopErrorScope__deps: ['$callUserCallback', '$allocateUTF8'],
+ wgpuDevicePopErrorScope__deps: ['$callFromEventLoop', '$allocateUTF8'],
wgpuDevicePopErrorScope: function(deviceId, callback, userdata) {
var device = WebGPU.mgrDevice.get(deviceId);
{{{ runtimeKeepalivePush() }}}
device["popErrorScope"]().then(function(gpuError) {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
if (!gpuError) {
{{{ makeDynCall('viii', 'callback') }}}(
{{{ gpu.ErrorType.NoError }}}, 0, userdata);
@@ -777,7 +777,7 @@
});
}, function(ex) {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
var messagePtr = allocateUTF8(ex.message);
// TODO: This can mean either the device was lost or the error scope stack was empty. Figure
// out how to synthesize the DeviceLost error type. (Could be by simply tracking the error
@@ -793,7 +793,7 @@
device.label = UTF8ToString(labelPtr);
},
- wgpuDeviceSetDeviceLostCallback__deps: ['$callUserCallback', '$allocateUTF8'],
+ wgpuDeviceSetDeviceLostCallback__deps: ['$callFromEventLoop', '$allocateUTF8'],
wgpuDeviceSetDeviceLostCallback: function(deviceId, callback, userdata) {
var deviceWrapper = WebGPU.mgrDevice.objects[deviceId];
{{{ gpu.makeCheckDefined('deviceWrapper') }}}
@@ -805,7 +805,7 @@
}
deviceWrapper.lostCallback = function(info) {
// This will skip the callback if the runtime is no longer alive.
- callUserCallback(function() {
+ callFromEventLoop(function() {
var messagePtr = allocateUTF8(info.message);
{{{ makeDynCall('viii', 'callback') }}}(WebGPU.DeviceLostReason[info.reason], messagePtr, userdata);
_free(messagePtr);
@@ -813,12 +813,12 @@
};
},
- wgpuDeviceSetUncapturedErrorCallback__deps: ['$callUserCallback', '$allocateUTF8'],
+ wgpuDeviceSetUncapturedErrorCallback__deps: ['$callFromEventLoop', '$allocateUTF8'],
wgpuDeviceSetUncapturedErrorCallback: function(deviceId, callback, userdata) {
var device = WebGPU.mgrDevice.get(deviceId);
device["onuncapturederror"] = function(ev) {
// This will skip the callback if the runtime is no longer alive.
- callUserCallback(function() {
+ callFromEventLoop(function() {
// WGPUErrorType type, const char* message, void* userdata
var Validation = 0x00000001;
var OutOfMemory = 0x00000002;
@@ -1472,7 +1472,7 @@
queue["submit"](cmds);
},
- wgpuQueueOnSubmittedWorkDone__deps: ['$callUserCallback'],
+ wgpuQueueOnSubmittedWorkDone__deps: ['$callFromEventLoop'],
wgpuQueueOnSubmittedWorkDone: function(queueId, {{{ defineI64Param('signalValue') }}}, callback, userdata) {
var queue = WebGPU.mgrQueue.get(queueId);
#if ASSERTIONS
@@ -1482,12 +1482,12 @@
{{{ runtimeKeepalivePush() }}}
queue["onSubmittedWorkDone"]().then(function() {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
{{{ makeDynCall('vii', 'callback') }}}({{{ gpu.QueueWorkDoneStatus.Success }}}, userdata);
});
}, function() {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
{{{ makeDynCall('vii', 'callback') }}}({{{ gpu.QueueWorkDoneStatus.Error }}}, userdata);
});
});
@@ -1889,7 +1889,7 @@
// In webgpu.h offset and size are passed in as size_t.
// And library_webgpu assumes that size_t is always 32bit in emscripten.
- wgpuBufferMapAsync__deps: ['$callUserCallback'],
+ wgpuBufferMapAsync__deps: ['$callFromEventLoop'],
wgpuBufferMapAsync: function(bufferId, mode, offset, size, callback, userdata) {
var bufferWrapper = WebGPU.mgrBuffer.objects[bufferId];
{{{ gpu.makeCheckDefined('bufferWrapper') }}}
@@ -1905,12 +1905,12 @@
{{{ runtimeKeepalivePush() }}}
buffer["mapAsync"](mode, offset, size).then(function() {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
{{{ makeDynCall('vii', 'callback') }}}({{{ gpu.BufferMapAsyncStatus.Success }}}, userdata);
});
}, function() {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
// TODO(kainino0x): Figure out how to pick other error status values.
{{{ makeDynCall('vii', 'callback') }}}({{{ gpu.BufferMapAsyncStatus.Error }}}, userdata);
});
@@ -2349,7 +2349,7 @@
#endif
},
- wgpuInstanceRequestAdapter__deps: ['$callUserCallback', '$allocateUTF8'],
+ wgpuInstanceRequestAdapter__deps: ['$callFromEventLoop', '$allocateUTF8'],
wgpuInstanceRequestAdapter: function(instanceId, options, callback, userdata) {
{{{ gpu.makeCheck('instanceId === 0, "WGPUInstance is ignored"') }}}
@@ -2374,7 +2374,7 @@
{{{ runtimeKeepalivePush() }}}
navigator["gpu"]["requestAdapter"](opts).then(function(adapter) {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
if (adapter) {
var adapterId = WebGPU.mgrAdapter.create(adapter);
{{{ makeDynCall('viiii', 'callback') }}}({{{ gpu.RequestAdapterStatus.Success }}}, adapterId, 0, userdata);
@@ -2386,7 +2386,7 @@
});
}, function(ex) {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
var messagePtr = allocateUTF8(ex.message);
{{{ makeDynCall('viiii', 'callback') }}}({{{ gpu.RequestAdapterStatus.Error }}}, 0, messagePtr, userdata);
_free(messagePtr);
@@ -2428,7 +2428,7 @@
return adapter.features.has(WebGPU.FeatureName[featureEnumValue]);
},
- wgpuAdapterRequestDevice__deps: ['$callUserCallback', '$allocateUTF8'],
+ wgpuAdapterRequestDevice__deps: ['$callFromEventLoop', '$allocateUTF8'],
wgpuAdapterRequestDevice: function(adapterId, descriptor, callback, userdata) {
var adapter = WebGPU.mgrAdapter.get(adapterId);
@@ -2507,14 +2507,14 @@
{{{ runtimeKeepalivePush() }}}
adapter["requestDevice"](desc).then(function(device) {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
var deviceWrapper = { queueId: WebGPU.mgrQueue.create(device["queue"]) };
var deviceId = WebGPU.mgrDevice.create(device, deviceWrapper);
{{{ makeDynCall('viiii', 'callback') }}}({{{ gpu.RequestDeviceStatus.Success }}}, deviceId, 0, userdata);
});
}, function(ex) {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
var messagePtr = allocateUTF8(ex.message);
{{{ makeDynCall('viiii', 'callback') }}}({{{ gpu.RequestDeviceStatus.Error }}}, 0, messagePtr, userdata);
_free(messagePtr);
diff --git a/src/library_wget.js b/src/library_wget.js
index 35b0a65..edb3307 100644
--- a/src/library_wget.js
+++ b/src/library_wget.js
@@ -16,7 +16,7 @@
},
},
- emscripten_async_wget__deps: ['$PATH_FS', '$wget', '$callUserCallback', '$Browser', '$withStackSave'],
+ emscripten_async_wget__deps: ['$PATH_FS', '$wget', '$callFromEventLoop', '$Browser', '$withStackSave'],
emscripten_async_wget__proxy: 'sync',
emscripten_async_wget__sig: 'viiii',
emscripten_async_wget: function(url, file, onload, onerror) {
@@ -28,7 +28,7 @@
function doCallback(callback) {
if (callback) {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
withStackSave(function() {
{{{ makeDynCall('vi', 'callback') }}}(allocateUTF8OnStack(_file));
});
@@ -59,14 +59,14 @@
);
},
- emscripten_async_wget_data__deps: ['$asyncLoad', 'malloc', 'free', '$callUserCallback'],
+ emscripten_async_wget_data__deps: ['$asyncLoad', 'malloc', 'free', '$callFromEventLoop'],
emscripten_async_wget_data__proxy: 'sync',
emscripten_async_wget_data__sig: 'viiii',
emscripten_async_wget_data: function(url, arg, onload, onerror) {
{{{ runtimeKeepalivePush() }}}
asyncLoad(UTF8ToString(url), function(byteArray) {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
var buffer = _malloc(byteArray.length);
HEAPU8.set(byteArray, buffer);
{{{ makeDynCall('viii', 'onload') }}}(arg, buffer, byteArray.length);
@@ -75,7 +75,7 @@
}, function() {
if (onerror) {
{{{ runtimeKeepalivePop() }}}
- callUserCallback(function() {
+ callFromEventLoop(function() {
{{{ makeDynCall('vi', 'onerror') }}}(arg);
});
}
diff --git a/tests/other/metadce/test_metadce_hello_O0.jssize b/tests/other/metadce/test_metadce_hello_O0.jssize
index b385b4b..8c63172 100644
--- a/tests/other/metadce/test_metadce_hello_O0.jssize
+++ b/tests/other/metadce/test_metadce_hello_O0.jssize
@@ -1 +1 @@
-27528
+27547
diff --git a/tests/other/metadce/test_metadce_minimal_O0.jssize b/tests/other/metadce/test_metadce_minimal_O0.jssize
index 2328b45..8c5691e 100644
--- a/tests/other/metadce/test_metadce_minimal_O0.jssize
+++ b/tests/other/metadce/test_metadce_minimal_O0.jssize
@@ -1 +1 @@
-22384
+22403
diff --git a/tests/other/test_runtime_keepalive.cpp b/tests/other/test_runtime_keepalive.cpp
index a6ef832..7c911d2 100644
--- a/tests/other/test_runtime_keepalive.cpp
+++ b/tests/other/test_runtime_keepalive.cpp
@@ -16,7 +16,7 @@
out("runtimeKeepalivePop done");
}
counter += 1;
- callUserCallback(() => {
+ callFromEventLoop(() => {
out("in user callback: " + counter);
}, 0);
setTimeout(timerCallback, 0);
diff --git a/tests/other/test_unoptimized_code_size.js.size b/tests/other/test_unoptimized_code_size.js.size
index 22f2b3f..26bac5d 100644
--- a/tests/other/test_unoptimized_code_size.js.size
+++ b/tests/other/test_unoptimized_code_size.js.size
@@ -1 +1 @@
-84076
+84100
diff --git a/tests/other/test_unoptimized_code_size_strict.js.size b/tests/other/test_unoptimized_code_size_strict.js.size
index a6b0329..de617b5 100644
--- a/tests/other/test_unoptimized_code_size_strict.js.size
+++ b/tests/other/test_unoptimized_code_size_strict.js.size
@@ -1 +1 @@
-66141
+66143
diff --git a/tests/test_other.py b/tests/test_other.py
index dbf447f..3d73ba2 100644
--- a/tests/test_other.py
+++ b/tests/test_other.py
@@ -11300,7 +11300,7 @@
def test_runtime_keepalive(self):
self.uses_es6 = True
- self.set_setting('DEFAULT_LIBRARY_FUNCS_TO_INCLUDE', ['$runtimeKeepalivePush', '$runtimeKeepalivePop', '$callUserCallback'])
+ self.set_setting('DEFAULT_LIBRARY_FUNCS_TO_INCLUDE', ['$runtimeKeepalivePush', '$runtimeKeepalivePop', '$callFromEventLoop'])
self.set_setting('EXIT_RUNTIME')
self.do_other_test('test_runtime_keepalive.cpp')