@ai-ecoverse/slicc-kernel 1.163.0 → 1.163.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.
@@ -8437,7 +8437,7 @@ function satisfies(version, range2) {
8437
8437
  }
8438
8438
 
8439
8439
  // src/version.ts
8440
- var KERNEL_VERSION = true ? "1.163.0" : "0.0.0-dev";
8440
+ var KERNEL_VERSION = true ? "1.163.1" : "0.0.0-dev";
8441
8441
  var OS_RELEASE = "6.0.0-slicc";
8442
8442
  function procVersion() {
8443
8443
  return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC
@@ -13230,6 +13230,11 @@ var HeldSet = class extends Set {
13230
13230
  async bindIds(id2) {
13231
13231
  for (const holds2 of [...this]) await holds2.bindIds(id2);
13232
13232
  }
13233
+ heldIds() {
13234
+ const out = /* @__PURE__ */ new Map();
13235
+ for (const holds2 of this) for (const [path, fid] of holds2.heldIds()) out.set(path, fid);
13236
+ return [...out];
13237
+ }
13233
13238
  delete(holds2) {
13234
13239
  const removed = super.delete(holds2);
13235
13240
  for (const path of /* @__PURE__ */ new Set([...holds2.keys(), ...holds2.opens.keys()])) this.idle(path);
@@ -13296,6 +13301,14 @@ var HeldPaths = class extends Map {
13296
13301
  this.bound.set(handle, { ...bound3, fid });
13297
13302
  }
13298
13303
  }
13304
+ heldIds() {
13305
+ const out = [];
13306
+ for (const [handle, key] of this.handles) {
13307
+ if (this.keptHandles.has(handle)) continue;
13308
+ out.push([key, this.bound.get(handle)?.fid]);
13309
+ }
13310
+ return out;
13311
+ }
13299
13312
  trust(handle, doubt) {
13300
13313
  if (this.doubted.get(handle) === doubt) this.doubted.delete(handle);
13301
13314
  }
@@ -33504,6 +33517,10 @@ var Launcher = class {
33504
33517
  for (const [holds2, ids] of keeping) holds2.keepBound(ids, path, file);
33505
33518
  void this.rootFs.announceHolds?.([], [path, hidden], false);
33506
33519
  }
33520
+ announceHeld() {
33521
+ const held = this.held.heldIds().filter(([path]) => this.mounts.locate(path) === void 0);
33522
+ return held.length === 0 ? void 0 : this.rootFs.announceHolds?.(held, [], false);
33523
+ }
33507
33524
  rootFileId(path) {
33508
33525
  return this.mounts.locate(path) === void 0 ? this.rootFs.bindId?.(path) : void 0;
33509
33526
  }
@@ -33514,7 +33531,7 @@ var Launcher = class {
33514
33531
  this.changes.flush();
33515
33532
  this.changes.foreign(crowded);
33516
33533
  if (crowded) {
33517
- void this.held?.bindIds((path) => this.rootFileId(path));
33534
+ void this.held?.bindIds((path) => this.rootFileId(path)).then(() => this.announceHeld());
33518
33535
  for (const nodes of this.openFiles) nodes.shared();
33519
33536
  }
33520
33537
  });