@ai-ecoverse/slicc-kernel 1.147.6 → 1.147.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/node.js CHANGED
@@ -3305,7 +3305,7 @@ function satisfies(version, range2) {
3305
3305
  }
3306
3306
 
3307
3307
  // src/version.ts
3308
- var KERNEL_VERSION = true ? "1.147.6" : "0.0.0-dev";
3308
+ var KERNEL_VERSION = true ? "1.147.8" : "0.0.0-dev";
3309
3309
  var OS_RELEASE = "6.0.0-slicc";
3310
3310
  function procVersion() {
3311
3311
  return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
@@ -5539,6 +5539,7 @@ var RealmProxy = class {
5539
5539
  const stopping = () => socket.close(1001, "the proxy is stopping");
5540
5540
  stop.addEventListener("abort", stopping, { once: true });
5541
5541
  let guestDone = false;
5542
+ let guestClosed = false;
5542
5543
  let closeSent = false;
5543
5544
  const outbound2 = (async () => {
5544
5545
  for await (const data of socket.messages) {
@@ -5552,6 +5553,7 @@ var RealmProxy = class {
5552
5553
  if (guestDone) return;
5553
5554
  closeSent = true;
5554
5555
  await toGuest(closeFrame(wireCode(closed.code), closed.reason));
5556
+ if (guestClosed) return;
5555
5557
  AbortSignal.timeout(this.limits.closeWaitMs).addEventListener("abort", () => done4.abort(), {
5556
5558
  once: true
5557
5559
  });
@@ -5566,15 +5568,13 @@ var RealmProxy = class {
5566
5568
  continue;
5567
5569
  }
5568
5570
  if (event.kind === "close") {
5569
- guestDone = true;
5570
5571
  if (closeSent) break;
5572
+ guestClosed = true;
5571
5573
  const code = wireCode(event.code);
5572
5574
  socket.close(code, event.reason);
5573
- const reply = await Promise.race([
5574
- socket.closed,
5575
- quietly(this.limits.closeWaitMs).then(() => ({ code, reason: event.reason }))
5576
- ]);
5577
- await toGuest(closeFrame(wireCode(reply.code), reply.reason));
5575
+ await Promise.race([outbound2, quietly(this.limits.closeWaitMs)]);
5576
+ guestDone = true;
5577
+ if (!closeSent) await toGuest(closeFrame(code, event.reason));
5578
5578
  break;
5579
5579
  }
5580
5580
  while (socket.buffered > SEND_BUFFER && !reading.aborted) await quietly(10);
@@ -19243,6 +19243,7 @@ function isWasmSyscall(req) {
19243
19243
  return typeof op === "string" && SYSCALL_OPS.has(op);
19244
19244
  }
19245
19245
  var MAX_READ = 1024 * 1024;
19246
+ var MAX_PREAD = 16 * 1024 * 1024;
19246
19247
  var O_NONBLOCK = 2048;
19247
19248
  var WRITE_ACCESS = 3;
19248
19249
  var KEYBOARD = /* @__PURE__ */ new Set([SIG.INT, SIG.QUIT, SIG.TSTP]);
@@ -20189,7 +20190,7 @@ var WasmProcess = class {
20189
20190
  return {
20190
20191
  ok: true,
20191
20192
  kind: "bytes",
20192
- bytes: await file.pread(Math.min(req.max, MAX_READ), req.offset)
20193
+ bytes: await file.pread(Math.min(req.max, MAX_PREAD), req.offset)
20193
20194
  };
20194
20195
  case "fd-pwrite":
20195
20196
  return { ok: true, kind: "json", json: await file.pwrite(req.body, req.offset) };
@@ -29145,9 +29146,18 @@ var Launcher = class {
29145
29146
  return id2().then(
29146
29147
  (before) => read().then(
29147
29148
  (first) => id2().then(
29148
- (after) => after.exeId === before.exeId ? [first, after] : this.reread(target, read).then(
29149
- (again) => id2().then((last) => [again, last])
29150
- )
29149
+ (after) => {
29150
+ if (after.exeId === before.exeId) return [first, after];
29151
+ const gone = [
29152
+ first,
29153
+ { exeId: `gone:${crypto.randomUUID()}` }
29154
+ ];
29155
+ if (after.exeId === void 0) return gone;
29156
+ return this.reread(target, read).then(
29157
+ (again) => id2().then((last) => [again, last]),
29158
+ () => gone
29159
+ );
29160
+ }
29151
29161
  )
29152
29162
  )
29153
29163
  );