futures-buffered icon indicating copy to clipboard operation
futures-buffered copied to clipboard

Refactor WakerList

Open conradludgate opened this issue 10 months ago • 0 comments

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

conradludgate avatar Feb 24 '25 16:02 conradludgate