(self: Enqueue<A, E>, message: Types.NoInfer<A>)
| 706 | * @since 4.0.0 |
| 707 | */ |
| 708 | export const offerUnsafe = <A, E>(self: Enqueue<A, E>, message: Types.NoInfer<A>): boolean => { |
| 709 | if (self.state._tag !== "Open") { |
| 710 | return false |
| 711 | } else if (self.messages.length >= self.capacity) { |
| 712 | if (self.strategy === "sliding") { |
| 713 | MutableList.take(self.messages) |
| 714 | MutableList.append(self.messages, message) |
| 715 | return true |
| 716 | } else if (self.capacity <= 0 && self.state.takers.size > 0) { |
| 717 | MutableList.append(self.messages, message) |
| 718 | releaseTakers(self as Queue<A, E>) |
| 719 | return true |
| 720 | } |
| 721 | return false |
| 722 | } |
| 723 | MutableList.append(self.messages, message) |
| 724 | scheduleReleaseTaker(self as Queue<A, E>) |
| 725 | return true |
| 726 | } |
| 727 | |
| 728 | /** |
| 729 | * Adds multiple messages to the queue. Returns the remaining messages that |
nothing calls this directly
no test coverage detected