zio.blocking

package zio.blocking

Type members

Classlikes

object Blocking extends Serializable

The Blocking module provides access to a thread pool that can be used for performing blocking operations, such as thread sleeps, synchronous socket/file reads, and so forth. The contract is that the thread pool will accept unlimited tasks (up to the available memory) and continuously create new threads as necessary.

The Blocking module provides access to a thread pool that can be used for performing blocking operations, such as thread sleeps, synchronous socket/file reads, and so forth. The contract is that the thread pool will accept unlimited tasks (up to the available memory) and continuously create new threads as necessary.

Types

Value members

Concrete methods

def blocking[R <: Blocking, E, A](zio: ZIO[R, E, A]): ZIO[R, E, A]

Locks the specified effect to the blocking thread pool.

Locks the specified effect to the blocking thread pool.

Retrieves the executor for all blocking tasks.

Retrieves the executor for all blocking tasks.

def effectBlocking[A](effect: => A): RIO[Blocking, A]

Retrieves the executor for all blocking tasks.

Retrieves the executor for all blocking tasks.

def effectBlockingCancelable[R <: Blocking, A](effect: => A)(cancel: URIO[R, Any]): RIO[R, A]

Imports a synchronous effect that does blocking IO into a pure value, with a custom cancel effect.

Imports a synchronous effect that does blocking IO into a pure value, with a custom cancel effect.

If the returned ZIO is interrupted, the blocked thread running the synchronous effect will be interrupted via the cancel effect.

def effectBlockingIO[A](effect: => A): ZIO[Blocking, IOException, A]

Imports a synchronous effect that does blocking IO into a pure value, refining the error type to [[java.io.IOException]].

Imports a synchronous effect that does blocking IO into a pure value, refining the error type to [[java.io.IOException]].

def effectBlockingInterrupt[A](effect: => A): RIO[Blocking, A]

Imports a synchronous effect that does blocking IO into a pure value.

Imports a synchronous effect that does blocking IO into a pure value.

If the returned ZIO is interrupted, the blocked thread running the synchronous effect will be interrupted via Thread.interrupt.

Note that this adds significant overhead. For performance sensitive applications consider using effectBlocking or effectBlockingCancel.