commit e0f4a099a0b3905213b62623a90c5915f9f0290b
parent 3061ee2130e4a08a9257e47552014be553129f9b
Author: Florian Dold <florian@dold.me>
Date: Thu, 6 Jul 2023 22:03:03 +0200
crash repro
Diffstat:
| A | crash.js | | | 45 | +++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 45 insertions(+), 0 deletions(-)
diff --git a/crash.js b/crash.js
@@ -0,0 +1,45 @@
+import * as std from "std";
+import * as os from "os";
+
+function openPromise() {
+ let resolve = null;
+ let reject = null;
+ const promise = new Promise((res, rej) => {
+ resolve = res;
+ reject = rej;
+ });
+ if (!(resolve && reject)) {
+ throw Error();
+ }
+ return { resolve, reject, promise };
+}
+
+let listener;
+
+async function waitUntilDone(ws) {
+ let p2;
+ listener = (yn) => {
+ if (!p2) {
+ return;
+ }
+ if (yn)
+ p2.resolve();
+ };
+ while (1) {
+ p2 = openPromise();
+ await p2.promise;
+ }
+}
+
+waitUntilDone();
+
+//os.setTimeout(() => {
+// std.gc();
+// listener(true);
+//}, 0);
+
+os.setTimeout(() => {
+ listener(false);
+ std.gc();
+ std.gc();
+}, 0);