(microExit: MicroExit<any, any>)
| 3348 | } |
| 3349 | } |
| 3350 | close(microExit: MicroExit<any, any>): Micro<void> { |
| 3351 | return suspend(() => { |
| 3352 | if (this.state._tag === "Open") { |
| 3353 | const finalizers = Array.from(this.state.finalizers).reverse() |
| 3354 | this.state = { _tag: "Closed", exit: microExit } |
| 3355 | return flatMap( |
| 3356 | forEach(finalizers, (finalizer) => exit(finalizer(microExit))), |
| 3357 | exitVoidAll |
| 3358 | ) |
| 3359 | } |
| 3360 | return void_ |
| 3361 | }) |
| 3362 | } |
| 3363 | get fork() { |
| 3364 | return sync(() => { |
| 3365 | const newScope = new MicroScopeImpl() |