You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Use Crystal::PointerLinkedList instead of Deque in Mutex (#15330)
Extracts the undocumented `Fiber::Waiting` struct from `WaitGroup` that acts as
the node in a linked list, replacing a `Deque` to store the waiting fibers.
The flat array doesn't have much impact on performance: we only reach the head
or the tail once to dequeue/dequeue one fiber at a time. This however spares a
number of GC allocations since the Deque has to be allocated plus its buffer
that will have to be reallocated sometimes (and will only ever grow, never shrink).
0 commit comments