| 944 | * @since 4.0.0 |
| 945 | */ |
| 946 | export const failCauseUnsafe = <A, E>(self: Enqueue<A, E>, cause: Cause<E>): boolean => { |
| 947 | if (self.state._tag !== "Open") { |
| 948 | return false |
| 949 | } |
| 950 | const exit = core.exitFailCause(cause) |
| 951 | const fail = internalEffect.exitZipRight(exit, exitFailDone) as Failure<never, E> |
| 952 | if ( |
| 953 | self.state.offers.size === 0 && |
| 954 | self.messages.length === 0 |
| 955 | ) { |
| 956 | finalize(self, fail) |
| 957 | return true |
| 958 | } |
| 959 | self.state = { ...self.state, _tag: "Closing", exit: fail } |
| 960 | return true |
| 961 | } |
| 962 | |
| 963 | /** |
| 964 | * Signals queue completion. |