@ai-ecoverse/slicc-kernel 1.138.0 → 1.138.1

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
@@ -7513,7 +7513,7 @@ function satisfies(version, range2) {
7513
7513
  }
7514
7514
 
7515
7515
  // src/version.ts
7516
- var KERNEL_VERSION = true ? "1.138.0" : "0.0.0-dev";
7516
+ var KERNEL_VERSION = true ? "1.138.1" : "0.0.0-dev";
7517
7517
  var OS_RELEASE = "6.0.0-slicc";
7518
7518
  function procVersion() {
7519
7519
  return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
@@ -25,11 +25,7 @@ function chain(target) {
25
25
  function hide(target, names) {
26
26
  for (const name2 of names) {
27
27
  const holders = chain(target);
28
- for (const holder of holders) {
29
- if (Object.getOwnPropertyDescriptor(holder, name2)?.configurable) {
30
- Reflect.deleteProperty(holder, name2);
31
- }
32
- }
28
+ for (const holder of holders) Reflect.deleteProperty(holder, name2);
33
29
  const kept = holders.slice(1).some((holder) => Object.hasOwn(holder, name2));
34
30
  const defined = Reflect.defineProperty(target, name2, {
35
31
  value: void 0,
@@ -45,11 +41,7 @@ function hide(target, names) {
45
41
  function vacate(target, names) {
46
42
  for (const name2 of names) {
47
43
  const holders = chain(target);
48
- for (const holder of holders) {
49
- if (Object.getOwnPropertyDescriptor(holder, name2)?.configurable) {
50
- Reflect.deleteProperty(holder, name2);
51
- }
52
- }
44
+ for (const holder of holders) Reflect.deleteProperty(holder, name2);
53
45
  const kept = holders.slice(1).some((holder) => Object.hasOwn(holder, name2));
54
46
  const opened2 = Reflect.defineProperty(target, name2, {
55
47
  value: void 0,
@@ -2783,7 +2775,7 @@ var KERNEL_VERSION, OS_RELEASE;
2783
2775
  var init_version = __esm({
2784
2776
  "src/version.ts"() {
2785
2777
  "use strict";
2786
- KERNEL_VERSION = true ? "1.138.0" : "0.0.0-dev";
2778
+ KERNEL_VERSION = true ? "1.138.1" : "0.0.0-dev";
2787
2779
  OS_RELEASE = "6.0.0-slicc";
2788
2780
  }
2789
2781
  });
@@ -9675,12 +9667,16 @@ function readyEvents(subs, ready) {
9675
9667
  ...nbytesOf(s, ready)
9676
9668
  }));
9677
9669
  }
9678
- function selectOnce(deps, read2, write2, timeoutMs2) {
9670
+ function selectOnce(deps, read2, write2, timeoutMs2, mayResume) {
9679
9671
  try {
9680
9672
  const ready = deps.kernel.call({ op: "fd-select", read: read2, write: write2, timeoutMs: timeoutMs2 });
9681
9673
  return { ready, interrupted: false };
9682
9674
  } catch (e) {
9683
- if (!deps.interruptWakes || e.code !== "EINTR") throw e;
9675
+ if (e.code !== "EINTR") throw e;
9676
+ if (!deps.interruptWakes && mayResume && deps.resumes?.()) {
9677
+ return { ready: { read: [], write: [] }, interrupted: false, resumed: true };
9678
+ }
9679
+ if (!deps.interruptWakes) throw e;
9684
9680
  return { ready: { read: [], write: [] }, interrupted: true };
9685
9681
  }
9686
9682
  }
@@ -9690,8 +9686,15 @@ function waitEvents(deps, subs, { events, read: read2, write: write2 }, entered)
9690
9686
  if (events.length > 0 || entered) return 0;
9691
9687
  return earliest === Infinity ? -1 : Math.max(0, Math.ceil(earliest - performance.now()));
9692
9688
  };
9693
- for (; ; ) {
9694
- const { ready, interrupted } = selectOnce(deps, read2, write2, timeout());
9689
+ for (let resumes = 0; ; ) {
9690
+ const { ready, interrupted, resumed } = selectOnce(
9691
+ deps,
9692
+ read2,
9693
+ write2,
9694
+ timeout(),
9695
+ resumes++ < RESUMES
9696
+ );
9697
+ if (resumed) continue;
9695
9698
  events.push(...readyEvents(subs, ready));
9696
9699
  if (interrupted) return true;
9697
9700
  if (events.length > 0 || entered || earliest === Infinity) return false;
@@ -9718,10 +9721,12 @@ function pollOneoff(deps, inPtr, outPtr, nsubs, neventsPtr) {
9718
9721
  mem.view().setUint32(neventsPtr, events.length, true);
9719
9722
  return E.SUCCESS;
9720
9723
  }
9724
+ var RESUMES;
9721
9725
  var init_wasi_poll = __esm({
9722
9726
  "src/process/wasi/wasi-poll.ts"() {
9723
9727
  "use strict";
9724
9728
  init_wasi_abi();
9729
+ RESUMES = 64;
9725
9730
  }
9726
9731
  });
9727
9732
 
@@ -10918,7 +10923,8 @@ var init_wasi_host = __esm({
10918
10923
  }
10919
10924
  });
10920
10925
  }
10921
- poll(inPtr, outPtr, n, nevents) {
10926
+ poll(inPtr, outPtr, n, nevents, resume = true) {
10927
+ const ran = this.signals?.ran ?? 0;
10922
10928
  try {
10923
10929
  return pollOneoff(
10924
10930
  {
@@ -10927,7 +10933,8 @@ var init_wasi_host = __esm({
10927
10933
  kernel: this.o.kernel,
10928
10934
  now: (id) => this.now(id),
10929
10935
  interruptWakes: this.interruptWakes,
10930
- entered: this.entered
10936
+ entered: this.entered,
10937
+ ...resume ? { resumes: () => this.resumesPoll(ran) } : {}
10931
10938
  },
10932
10939
  inPtr,
10933
10940
  outPtr,
@@ -10938,13 +10945,17 @@ var init_wasi_host = __esm({
10938
10945
  this.o.fs.invalidate?.();
10939
10946
  }
10940
10947
  }
10948
+ resumesPoll(ran) {
10949
+ this.interrupted?.();
10950
+ return (this.signals?.ran ?? 0) === ran;
10951
+ }
10941
10952
  maskedPoll(mask, set, [inPtr, outPtr, n, nevents]) {
10942
10953
  const old = mask.swap(set[0], set[1]);
10943
10954
  try {
10944
10955
  this.mem.view().setUint32(nevents, 0, true);
10945
10956
  if (mask.deliverUnblocked()) return E.INTR;
10946
10957
  this.settleEntry(mask);
10947
- if (n > 0) return this.poll(inPtr, outPtr, n, nevents);
10958
+ if (n > 0) return this.poll(inPtr, outPtr, n, nevents, false);
10948
10959
  return this.entered ? E.INTR : this.suspend();
10949
10960
  } finally {
10950
10961
  mask.deliverUnblocked();
@@ -12897,7 +12908,9 @@ var init_wasi_signals = __esm({
12897
12908
  this.deferred &= ~bit;
12898
12909
  this.raise(sig);
12899
12910
  }
12911
+ ran = 0;
12900
12912
  run(handler, sig) {
12913
+ this.ran++;
12901
12914
  const outer = { sig: this.delivering, defaulted: this.defaulted, libc: this.libcDefault };
12902
12915
  this.delivering = sig;
12903
12916
  this.defaulted = false;