(
register: (
callback: (_: Effect.Effect<A, E, R>) => void
) => void | Effect.Effect<void, never, R>,
blockingOn: FiberId.FiberId = FiberId.none
)
| 487 | |
| 488 | /* @internal */ |
| 489 | export const unsafeAsync = <A, E = never, R = never>( |
| 490 | register: ( |
| 491 | callback: (_: Effect.Effect<A, E, R>) => void |
| 492 | ) => void | Effect.Effect<void, never, R>, |
| 493 | blockingOn: FiberId.FiberId = FiberId.none |
| 494 | ): Effect.Effect<A, E, R> => { |
| 495 | const effect = new EffectPrimitive(OpCodes.OP_ASYNC) as any |
| 496 | let cancelerRef: Effect.Effect<void, never, R> | void = undefined |
| 497 | effect.effect_instruction_i0 = (resume: (_: Effect.Effect<A, E, R>) => void) => { |
| 498 | cancelerRef = register(resume) |
| 499 | } |
| 500 | effect.effect_instruction_i1 = blockingOn |
| 501 | return onInterrupt(effect, (_) => isEffect(cancelerRef) ? cancelerRef : void_) |
| 502 | } |
| 503 | |
| 504 | /* @internal */ |
| 505 | export const asyncInterrupt = <A, E = never, R = never>( |
no test coverage detected