Package

io.github.timwspence.cats

stm

Permalink

package stm

Visibility
  1. Public
  2. All

Type Members

  1. final class STM[A] extends AnyVal

    Permalink

    Monad representing transactions involving one or more TVars.

    Monad representing transactions involving one or more TVars.

    This design was inspired by [Beautiful Concurrency](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/beautiful.pdf) and informed by ZIO which has a common origin in that paper via the [stm package](http://hackage.haskell.org/package/stm).

  2. final class TMVar[A] extends AnyVal

    Permalink

    Convenience definition providing MVar-like behaviour in the STM monad.

    Convenience definition providing MVar-like behaviour in the STM monad. That is, a TMVar is a mutable memory location which is either empty or contains a value.

    Analogous to cats.effect.concurrent.MVar.

  3. final class TQueue[A] extends AnyRef

    Permalink

    Convenience definition of a queue in the STM monad.

  4. final class TSemaphore extends AnyRef

    Permalink

    Convenience definition of a semaphore in the STM monad.

    Convenience definition of a semaphore in the STM monad.

    Analogous to cats.effect.concurrent.Semaphore.

  5. final class TVar[A] extends AnyRef

    Permalink

    Transactional variable - a mutable memory location that can be read or written to via STM actions.

    Transactional variable - a mutable memory location that can be read or written to via STM actions.

    Analagous to cats.effect.concurrent.Ref.

Value Members

  1. object STM

    Permalink
  2. object TMVar

    Permalink
  3. object TQueue

    Permalink
  4. object TSemaphore

    Permalink
  5. object TVar

    Permalink

Ungrouped