@ai-ecoverse/slicc-kernel 1.77.1 → 1.77.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.
@@ -1497,6 +1497,7 @@ var init_wasi_fds = __esm({
1497
1497
  WasiFds = class {
1498
1498
  table = /* @__PURE__ */ new Map();
1499
1499
  buffers = /* @__PURE__ */ new Map();
1500
+ reported = /* @__PURE__ */ new WeakSet();
1500
1501
  byId = /* @__PURE__ */ new Map();
1501
1502
  ids = /* @__PURE__ */ new Map();
1502
1503
  kernel;
@@ -1821,7 +1822,16 @@ var init_wasi_fds = __esm({
1821
1822
  release(e) {
1822
1823
  if (e.type !== "file" || --e.file.refs > 0) return;
1823
1824
  const { buffer } = e.file;
1824
- buffer.flush();
1825
+ try {
1826
+ buffer.flush();
1827
+ } catch (err) {
1828
+ this.reported.add(buffer);
1829
+ this.drop(buffer);
1830
+ throw err;
1831
+ }
1832
+ this.drop(buffer);
1833
+ }
1834
+ drop(buffer) {
1825
1835
  if (--buffer.opens > 0) return;
1826
1836
  this.forget(buffer);
1827
1837
  this.letGo(buffer);
@@ -1876,7 +1886,13 @@ var init_wasi_fds = __esm({
1876
1886
  return e.kind;
1877
1887
  }
1878
1888
  flushAll() {
1879
- for (const buffer of this.buffers.values()) buffer.flush();
1889
+ for (const buffer of this.buffers.values()) {
1890
+ try {
1891
+ buffer.flush();
1892
+ } catch (err) {
1893
+ if (!this.reported.has(buffer)) throw err;
1894
+ }
1895
+ }
1880
1896
  }
1881
1897
  flushEarly() {
1882
1898
  for (const buffer of this.buffers.values()) {