nee-core / dev.neeffect.nee.effects.async

Package dev.neeffect.nee.effects.async

Types

ActiveAsyncClose

Used to wrap async code.

class ActiveAsyncClose<R>

ActiveAsynStack

Ongoing async process.

class ActiveAsynStack<R> : AsyncStack<R>

AsyncClosingAction

Action that performs clean

interface AsyncClosingAction<R>

AsyncEffect

Aynchority effect.

class AsyncEffect<R : ExecutionContextProvider> : Effect<R, Nothing>, Logging

AsyncEnvWrapper

Keeps async status as atomic reference.

class AsyncEnvWrapper<R> : AsyncSupport<R>, Logging

AsyncStack

Registry of async cleaning operations.

sealed class AsyncStack<R> : Logging

AsyncSupport

Marks environment supporting async operations with post cleaning.

interface AsyncSupport<R>

CleanAsyncStack

Empty registry.

class CleanAsyncStack<R> : AsyncStack<R>

ECProvider

class ECProvider : ExecutionContextProvider

ExecutionContext

Technical interface for threading model.

interface ExecutionContext

ExecutionContextProvider

Provider of execution context.

interface ExecutionContextProvider

ExecutorExecutionContext

class ExecutorExecutionContext : ExecutionContext

InPlaceExecutor

object InPlaceExecutor : Executor

SyncExecutionContext

In thread execution (immediate).

class SyncExecutionContext : ExecutionContext

Functions

doNothing

fun <R> doNothing(env: R): R

executeAsyncCleaning

fun <R, T> executeAsyncCleaning(env: R, action: () -> T, cleanAction: (R) -> R): T

onClose

fun <R> AsyncStack<R>.onClose(f: (R) -> R): ActiveAsynStack<R>