event-listener icon indicating copy to clipboard operation
event-listener copied to clipboard

Roll algorithm back to v2.5.3, then add back features to avoid a breaking change

Open notgull opened this issue 10 months ago • 14 comments

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.

notgull avatar Apr 11 '24 04:04 notgull