cats-effect
cats-effect copied to clipboard
The pure asynchronous runtime for Scala
In https://github.com/typelevel/cats-effect/discussions/3873#discussioncomment-8356851 we decided that we will support stealing for load-balancing. Thus, we should add an API to the polling system that allows completed I/O to be stolen. Not all...
An important feature of the polling system is the ability to interrupt a poller while it is polling. This is necessary to wake up a worker thread e.g. when there...
This pull request resolves #3318.
Explicitly `cede`-ing between expensive compute-bound operations is one of the strategies for addressing CPU-starvation and is suggested in the warning. https://github.com/typelevel/cats-effect/blob/832079aecbbf956fb18f11392cfeec6cdaa52915/core/shared/src/main/scala/cats/effect/CpuStarvationCheck.scala#L43-L44 How to do this is described in the scaladocs...
Currently the Cats Effect memory model is implicitly defined via implementation details and the Java Memory Model (JMM). In some cases this works okay but in other cases this means...
It's very good that CONTRIBUTING.md and RELEASING.md exist. However, I have some ideas for little improvements. I'm happy to do this, but I need some answers: - It is very...
The handling of some uncaught fatal errors can be customized by overriding `cats.effect.IOApp.reportFailure`. However, such customization is currently not possible in many cases (all usages of `java.lang.Throwable.printStackTrace()`, for example [here](https://github.com/typelevel/cats-effect/pull/3008))....
Starting point for an unsafe queue API as part of **std**. Opening WIP PR to start the discussion. For background… @armanbilge and I have been discussing this at length for...
This test fails: ```scala "foobar" in real { IO(new AtomicInteger).flatMap { ctr => val test = IO.deferred[Unit].flatMap { latch => val t = latch.complete(()).uncancelable *> IO.async_[Unit] { cb => ctr.getAndIncrement()...
@bpholt recently brought up the issue of providing an MTL `Local` instance for `IOLocal` in https://github.com/armanbilge/oxidized/issues/9#issuecomment-1405824000. That repo exists because Cats MTL can't provide it (since it creates a dep...