/fixes #9973 /fixes #9974 /claim #9973
This PR fixes two issues, which both contribute to Queue#take
dropping items:
FiberRuntime
)Queue#take
did not take into account that it had to return items to the queue in case that the promise was already fulfilled (with interruption)Note that:
FiberRuntime
file fix https://github.com/zio/zio/issues/9974Queue
file fix https://github.com/zio/zio/issues/9973Leaving as draft cause I want to go over the queue code once more with a fresh mind, and to see if CI agrees with my changes
Full disclaimer: While the solution seems rather simple, this was one of the hardest issues I ever worked on. Figuring out the changes needed to be done in FiberRuntime in a way that didn’t break existing functionality took an enormous amount of time
Kyri Petrou
@kyri-petrou
ZIO
@ZIO