This is the thirty-ninth release in the Cats Effect 3.x lineage. It is fully binary compatible with every 3.x release. It is fully binary compatible with every 3.x release, and fully source-compatible with every 3.4.x release. Note that source compatibility has been broken with 3.3.x in some minor areas. Since those changes require active choice on the part of users to decide the best adjusted usage for their specific scenario, we have chosen to not provide scalafixes which automatically patch the affected call sites.
This release fixes a very rare runtime bug which manifests in applications with a high degree of contention on blocking
/interruptible
operations. In some rare circumstances, a fiber could be lost during the scheduling process, which could result in application-level deadlocks.
User-Facing Pull Requests
- #3444 – Demonstrate and try to fix a possible bug with a "lost" fiber (@durban)
- #3446 – Replace ArrayBlockingQueue with LinkedTransferQueue (@vasilmkd)
- #3425 – Fix
fromCompletableFuture
cancelation leak (@TimWSpence, @armanbilge) - #3424 – Fix corking when writing large strings to stdout/stderr on Node.js (@armanbilge)
- #3412, #3421 – Documentation fixes and improvements (@mtomko, @durban)
Thank you, everyone!