futures-buffered
futures-buffered copied to clipboard
Refactor WakerList
WakerList is currently doing too much - which makes it a difficult abstraction to manage.
Splitting it into ThinArcList and WakerList.
ThinArcList is like triomphe::ThinArc, except that each entry stores its index in the list. This allows each ThinArcItem to be turned into the ThinArcList on demand.
WakerList is a ThinArcList where the header tracks the waker queue, and the slice tracks
each waker's registration. The WakerItem is able to be converted into a Waker on-demand.
Much of the code has been taken directly from triomphe for now. Upstreaming this could be worthwhile but for now I think it fits better here.
See https://github.com/conradludgate/triomphe/pull/1