@ai-ecoverse/slicc-kernel 1.130.0 → 1.130.2

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
@@ -4154,10 +4154,12 @@ var RemoteWatch = class {
4154
4154
  quiet;
4155
4155
  crowd;
4156
4156
  told;
4157
+ counted = 0;
4157
4158
  recount() {
4158
4159
  const now = this.crowded();
4159
- if (now === this.told) return;
4160
+ if (now === this.told && this.peers.size === this.counted) return;
4160
4161
  this.told = now;
4162
+ this.counted = this.peers.size;
4161
4163
  this.crowd?.(now);
4162
4164
  }
4163
4165
  constructor(name2, options = {}) {
@@ -7392,7 +7394,7 @@ function satisfies(version, range2) {
7392
7394
  }
7393
7395
 
7394
7396
  // src/version.ts
7395
- var KERNEL_VERSION = true ? "1.130.0" : "0.0.0-dev";
7397
+ var KERNEL_VERSION = true ? "1.130.2" : "0.0.0-dev";
7396
7398
  var OS_RELEASE = "6.0.0-slicc";
7397
7399
  function procVersion() {
7398
7400
  return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
@@ -9427,6 +9429,9 @@ var FileChanges = class {
9427
9429
  foreign(on) {
9428
9430
  Atomics.store(this.view, FOREIGN, on ? 1 : 0);
9429
9431
  }
9432
+ flush() {
9433
+ Atomics.add(this.view, GEN, RING_SIZE + 1);
9434
+ }
9430
9435
  publish(...paths) {
9431
9436
  for (const path of paths) {
9432
9437
  const g = Atomics.add(this.view, GEN, 1) + 1 | 0;
@@ -23941,6 +23946,7 @@ var SETUP_OPS = /* @__PURE__ */ new Set([
23941
23946
  "proc-identity",
23942
23947
  "fd-info",
23943
23948
  "sig-mask",
23949
+ "sig-inherited",
23944
23950
  "proc-setpgid",
23945
23951
  "tty-pgrp-set",
23946
23952
  "proc-exec",
@@ -26492,9 +26498,7 @@ var Launcher = class {
26492
26498
  this.usersMode = usersMode(options.users);
26493
26499
  this.memories = memoriesOf(options.wasmMemories);
26494
26500
  this.rootFs = options.fs;
26495
- const peers = options.fs.peers?.();
26496
- this.locks = kernelLocks(options.fs.rootName, peers);
26497
- peers?.watch((crowded) => this.changes.foreign(crowded));
26501
+ this.locks = kernelLocks(options.fs.rootName, this.flushingPeers(options.fs));
26498
26502
  this.dac = this.usersMode === "off" ? void 0 : new Dac(this.usersMode, options.onDenial);
26499
26503
  if (this.dac) this.dac.tagOf = (pid) => this.tagOf(pid);
26500
26504
  this.clipboard = new ClipboardBroker(
@@ -26580,7 +26584,10 @@ var Launcher = class {
26580
26584
  this.nodes.keepsOnDisk = true;
26581
26585
  this.openFiles.add(this.nodes);
26582
26586
  options.fs.onPeer?.(() => this.flushOpen());
26583
- options.fs.remoteChanges?.((change) => this.rewritten(change.paths));
26587
+ options.fs.remoteChanges?.((change) => {
26588
+ this.changes.flush();
26589
+ this.rewritten(change.paths);
26590
+ });
26584
26591
  const holders = [this.held, this.openFiles];
26585
26592
  this.unlinked = new UnlinkedKeeper(
26586
26593
  fs,
@@ -28350,6 +28357,21 @@ var Launcher = class {
28350
28357
  this.writers ??= this.writerStack();
28351
28358
  return this.writers;
28352
28359
  }
28360
+ flushingPeers(fs) {
28361
+ const peers = fs.peers?.();
28362
+ if (!peers) return void 0;
28363
+ peers.watch((crowded) => {
28364
+ this.changes.flush();
28365
+ this.changes.foreign(crowded);
28366
+ });
28367
+ return {
28368
+ ...peers,
28369
+ fresh: () => {
28370
+ this.changes.flush();
28371
+ peers.fresh?.();
28372
+ }
28373
+ };
28374
+ }
28353
28375
  rewritten(paths) {
28354
28376
  for (const nodes of this.openFiles) for (const path of paths) nodes.rewritten(path);
28355
28377
  this.changes.publish(...paths);