| 1883 | } |
| 1884 | |
| 1885 | const offerRemainingSingle = <A, E>(self: Enqueue<A, E>, message: A) => { |
| 1886 | return internalEffect.callback<boolean>((resume) => { |
| 1887 | if (self.state._tag !== "Open") { |
| 1888 | return resume(exitFalse) |
| 1889 | } |
| 1890 | const entry: Queue.OfferEntry<A> = { _tag: "Single", message, resume } |
| 1891 | self.state.offers.add(entry) |
| 1892 | return internalEffect.sync(() => { |
| 1893 | if (self.state._tag === "Open") { |
| 1894 | self.state.offers.delete(entry) |
| 1895 | } |
| 1896 | }) |
| 1897 | }) |
| 1898 | } |
| 1899 | |
| 1900 | const offerRemainingArray = <A, E>(self: Enqueue<A, E>, remaining: Array<A>) => { |
| 1901 | return internalEffect.callback<Array<A>>((resume) => { |