(self: Deferred.Deferred<A, E>)
| 2858 | |
| 2859 | /* @internal */ |
| 2860 | export const deferredAwait = <A, E>(self: Deferred.Deferred<A, E>): Effect.Effect<A, E> => |
| 2861 | asyncInterrupt<A, E>((resume) => { |
| 2862 | const state = MutableRef.get(self.state) |
| 2863 | switch (state._tag) { |
| 2864 | case DeferredOpCodes.OP_STATE_DONE: { |
| 2865 | return resume(state.effect) |
| 2866 | } |
| 2867 | case DeferredOpCodes.OP_STATE_PENDING: { |
| 2868 | // we can push here as the internal state is mutable |
| 2869 | state.joiners.push(resume) |
| 2870 | return deferredInterruptJoiner(self, resume) |
| 2871 | } |
| 2872 | } |
| 2873 | }, self.blockingOn) |
| 2874 | |
| 2875 | /* @internal */ |
| 2876 | export const deferredComplete: { |
no test coverage detected