design-b D-1: bump wxwidgets (gating + legacy twins deleted) + shim cleanup
wxwidgets c44c684f7d (D-1c: scheduler lanes unconditional,
wxWasmMailboxEnabled gone, fail-fast shim assert) + 24843897e8 (D-1d:
startModal / wxWasmRunNestedLoop / popup pump / resolver stacks / bare
emscripten_async_call timer entries deleted).
pcbjam side of D-1d: the scheduler shim's delivery-tick error path uses
wait-registry containment (resolveTopWait nested+modal) instead of the
deleted _wxNestedLoopExit stack, and diagnostics.js tracks modal
lifecycle via pendingWaits('modal') instead of the deleted
Module._endModal hook.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TEHGiiXMShNXbBr7gSJ7iz
This commit is contained in:
parent
4906b9fb56
commit
de27ecf327
3 changed files with 19 additions and 19 deletions
|
|
@ -87,27 +87,24 @@
|
|||
};
|
||||
}
|
||||
|
||||
// 5. Modal lifecycle (startModal sets Module._endModal; detect appear/disappear).
|
||||
// 5. Modal lifecycle: poll the scheduler wait registry ("modal" waits).
|
||||
// (The legacy Module._endModal hook was deleted at doc 20 D-1.)
|
||||
if (typeof Module !== "undefined") {
|
||||
var seen = false;
|
||||
var lastModalWaits = 0;
|
||||
setInterval(function() {
|
||||
if (Module._endModal && !seen) {
|
||||
seen = true; modalActive = true;
|
||||
console.log("[DIAG_MODAL] modal started, state=" + asyncState());
|
||||
var __origEnd = Module._endModal;
|
||||
Module._endModal = function(code) {
|
||||
console.log("[DIAG_MODAL] EndModal code=" + code + " state=" + asyncState());
|
||||
modalActive = false;
|
||||
return __origEnd(code);
|
||||
};
|
||||
} else if (!Module._endModal && seen) {
|
||||
seen = false;
|
||||
console.log("[DIAG_MODAL] modal cleanup, state=" + asyncState());
|
||||
var S = globalThis.__wxScheduler;
|
||||
if (!S || typeof S.pendingWaits !== "function") return;
|
||||
var n = S.pendingWaits("modal");
|
||||
if (n !== lastModalWaits) {
|
||||
console.log("[DIAG_MODAL] modal waits " + lastModalWaits + " -> " + n +
|
||||
", state=" + asyncState());
|
||||
modalActive = n > 0;
|
||||
lastModalWaits = n;
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
|
||||
// 6. EM_ASYNC_JS sleeps (startModal, js_enumerateFonts, clipboard, etc.) — log
|
||||
// 6. EM_ASYNC_JS sleeps (wxWasmYieldUntilJs, js_enumerateFonts, clipboard, etc.) — log
|
||||
// enter/wake so we can see whether an async sleep is NESTED with a fiber swap
|
||||
// at the crash (the #9153 collision). Logging only; delegates unchanged.
|
||||
if (typeof Asyncify !== "undefined" && typeof Asyncify.handleSleep === "function") {
|
||||
|
|
|
|||
Loading…
Reference in a new issue