Converts an asynchronous, callback-style API into a ZIO effect, which will be executed asynchronously.
Converts an asynchronous, callback-style API into a ZIO effect, which will be executed asynchronously.
This method allows you to specify the fiber id that is responsible for
invoking callbacks provided to the register
function. This is called the
"blocking fiber", because it is stopping the fiber executing the async
effect from making progress (although it is not "blocking" a thread).
Specifying this fiber id in cases where it is known will improve
diagnostics, but not affect the behavior of the returned effect.
Converts an asynchronous, callback-style API into a ZIO effect, which will be executed asynchronously.
Converts an asynchronous, callback-style API into a ZIO effect, which will be executed asynchronously.
With this variant, you can specify either a way to cancel the asynchrounous action, or you can return the result right away if no asynchronous operation is required.
This method allows you to specify the fiber id that is responsible for
invoking callbacks provided to the register
function. This is called the
"blocking fiber", because it is stopping the fiber executing the async
effect from making progress (although it is not "blocking" a thread).
Specifying this fiber id in cases where it is known will improve
diagnostics, but not affect the behavior of the returned effect.
Converts an asynchronous, callback-style API into a ZIO effect, which will be executed asynchronously.
Converts an asynchronous, callback-style API into a ZIO effect, which will be executed asynchronously.
With this variant, the registration function may return the result right away, if it turns out that no asynchronous operation is required to complete the operation.
This method allows you to specify the fiber id that is responsible for
invoking callbacks provided to the register
function. This is called the
"blocking fiber", because it is stopping the fiber executing the async
effect from making progress (although it is not "blocking" a thread).
Specifying this fiber id in cases where it is known will improve
diagnostics, but not affect the behavior of the returned effect.
Returns an effect that, when executed, will cautiously run the provided code, catching any exception and translated it into a failed ZIO effect.
Returns an effect that, when executed, will cautiously run the provided code, catching any exception and translated it into a failed ZIO effect.
This method should be used whenever you want to take arbitrary code, which may throw exceptions or not be type safe, and convert it into a ZIO effect, which can safely execute that code whenever the effect is executed.
def printLine(line: String): Task[Unit] = ZIO.attempt(println(line))
Returns an effect that, when executed, will cautiously run the provided code, catching any exception and translated it into a failed ZIO effect.
Returns an effect that, when executed, will cautiously run the provided code, catching any exception and translated it into a failed ZIO effect.
This method should be used whenever you want to take arbitrary code, which may throw exceptions or not be type safe, and convert it into a ZIO effect, which can safely execute that code whenever the effect is executed.
This variant expects that the provided code will engage in blocking I/O, and therefore, pro-actively executes the code on a dedicated blocking thread pool, so it won't interfere with the main thread pool that ZIO uses.
Returns an effect that, when executed, will cautiously run the provided code, catching any exception and translated it into a failed ZIO effect.
Returns an effect that, when executed, will cautiously run the provided code, catching any exception and translated it into a failed ZIO effect.
This method should be used whenever you want to take arbitrary code, which may throw exceptions or not be type safe, and convert it into a ZIO effect, which can safely execute that code whenever the effect is executed.
This variant expects that the provided code will engage in blocking I/O, and therefore, pro-actively executes the code on a dedicated blocking thread pool, so it won't interfere with the main thread pool that ZIO uses.
Additionally, this variant allows you to specify an effect that will cancel the blocking operation. This effect will be executed if the fiber that is executing the blocking effect is interrupted for any reason.
This function is the same as attempt
, except that it only exposes
IOException
, treating any other exception as fatal.
Returns an effect that models success with the specified value.
Returns a synchronous effect that does blocking and succeeds with the specified value.