@ai-ecoverse/slicc-kernel 1.53.3 → 1.53.4

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
@@ -10369,9 +10369,11 @@ var JobTable = class {
10369
10369
  const member = this.member(pid);
10370
10370
  const id2 = this.idOf(pid);
10371
10371
  if (member.pgid === id2) throw new KernelError("EPERM");
10372
+ const left = member.pgid;
10372
10373
  member.sid = id2;
10373
10374
  member.pgid = id2;
10374
10375
  this.terminals.delete(id2);
10376
+ this.prune(left);
10375
10377
  return id2;
10376
10378
  }
10377
10379
  terminalNamed(name2) {
@@ -10415,18 +10417,18 @@ var JobTable = class {
10415
10417
  const inSession = [...this.members.values()].some((m) => m.pgid === pgid && m.sid === self.sid);
10416
10418
  if (!inSession) throw new KernelError("EPERM");
10417
10419
  const current = this.foreground.get(tty);
10418
- if (settling && pgid === self.pgid && current !== pgid && this.reclaimed(pgid, self.ppid))
10419
- return;
10420
- if (pgid !== self.pgid) this.handoffs.set(pgid, { by: caller, reclaimed: false });
10420
+ if (settling && pgid === self.pgid && current !== pgid && this.reclaimed(pgid, caller)) return;
10421
+ const by = this.shown(caller);
10422
+ if (pgid !== self.pgid) this.handoffs.set(pgid, { by, reclaimed: false });
10421
10423
  else if (current !== void 0) {
10422
10424
  const handoff = this.handoffs.get(current);
10423
- if (handoff?.by === caller) handoff.reclaimed = true;
10425
+ if (handoff?.by === by) handoff.reclaimed = true;
10424
10426
  }
10425
10427
  this.foreground.set(tty, pgid);
10426
10428
  }
10427
- reclaimed(pgid, parent) {
10429
+ reclaimed(pgid, caller) {
10428
10430
  const handoff = this.handoffs.get(pgid);
10429
- return handoff?.reclaimed === true && handoff.by === parent;
10431
+ return handoff?.reclaimed === true && handoff.by === this.shownParent(caller);
10430
10432
  }
10431
10433
  signalOwnedForeground(tty, sig) {
10432
10434
  const pgid = this.foreground.get(tty);