Skip to content

Commit 25da3fa

Browse files
committed
prevent reentrance async override
1 parent 64d8c03 commit 25da3fa

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/Class/Functional/index.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,8 @@ export class Functional<
157157
}
158158
}
159159

160+
private _signal: Symbol
161+
160162
private _forward_if_ready() {
161163
// console.log('Functional', '_forward_if_ready')
162164
while (
@@ -174,7 +176,17 @@ export class Functional<
174176
this._forwarding_empty = false
175177
}
176178

177-
this.f(this._i, this._done)
179+
this._signal = Symbol()
180+
181+
const signal = this._signal
182+
183+
this.f(this._i, (...args) => {
184+
if (signal !== this._signal) {
185+
return
186+
}
187+
188+
this._done(...args)
189+
})
178190
}
179191
}
180192

0 commit comments

Comments
 (0)