Hey @Richard Gibson@Scott Christopher@kioba,
I rewrote the internals of
Queue
which was based on
ZIO
to how
MVar
is build in Arrow and Cats-effects which uses lower level constructs such as
atomic
with
tailrec
instead of
Ref
.
You can find the PR here, https://github.com/arrow-kt/arrow/pull/2081, there is some impact on the API. Since we can offer a more powerful API but 2 use-cases are removed. Dropping and bounded queue with capacity 0.
Looking forward to your feedback on the PR 🙂
❤️ 3
s
Scott Christopher
02/19/2020, 10:51 PM
Nice work on the perf improvements! I haven’t had a close review of the implementation, but I don’t think it’s a problem to drop support for 0 capacity (I only added them because it was possible). If someone wants that behaviour then it’s probably best implementing as something new like a Channel data type which makes the behaviour explicit.
s
simon.vergauwen
02/20/2020, 8:41 AM
Thanks for the feedback already @Scott Christopher!
k
kioba
02/21/2020, 1:20 PM
I finally had time to look at it. It is incredible job and really nice results! 🙂 Thanks for letting us look at it ❤️
s
simon.vergauwen
02/21/2020, 1:27 PM
Hey @kioba thanks for the feedback! Happy to hear you like the improvement ❤️ Thanks again for your contribution to