event-listener
event-listener copied to clipboard
Roll algorithm back to v2.5.3, then add back features to avoid a breaking change
I have to apologize. I know it sounds self-deprecating, but really, I've been over the line on this particular issue. This should hopefully fix it for now.
The new implementation for the event listener, #51, has been plagued with bugs from its inception. Frankly, I've gotten sick of papering over these bugs, and I know that prod customers are almost certainly impacted but haven't reported it.
This PR reverts the implementation of event-listener
back to version 2.5.3; before I made any of the sweeping architectural changes to the crate. Then I re-add new changes to this crate in a "path of least resistance" fashion. The goal is to change the internal algorithm as little as possible, as we know this algorithm is stable and robust.
The only real diversion from this path is my adding of a no_std
implementation. I've added a no_std
implementation based on an atomic linked list built on an amortized atomically expanded vector. Since it doesn't use concurrent-queue
it fixes #109.
Let me run a "crater test" on the smol
ecosystem before this is merged. Expect a "post mortem" at some point in the near future.