kotlinx-coroutines-core
Core primitives to work with coroutines.
Coroutine builder functions:
| Name | Result | Scope | Description | 
|---|---|---|---|
| launch | Job | CoroutineScope | Launches coroutine that does not have any result | 
| async | Deferred | CoroutineScope | Returns a single value with the future result | 
| produce | ReceiveChannel | ProducerScope | Produces a stream of elements | 
| kotlinx.coroutines.runBlocking | T | CoroutineScope | Blocks the thread while the coroutine runs | 
Coroutine dispatchers implementing CoroutineDispatcher:
| Name | Description | 
|---|---|
| Dispatchers.Default | Confines coroutine execution to a shared pool of background threads | 
| Dispatchers.Unconfined | Does not confine coroutine execution in any way | 
More context elements:
| Name | Description | 
|---|---|
| NonCancellable | A non-cancelable job that is always active | 
| CoroutineExceptionHandler | Handler for uncaught exception | 
Synchronization primitives for coroutines:
| Name | Suspending functions | Description | 
|---|---|---|
| Mutex | lock | Mutual exclusion | 
| Channel | send, receive | Communication channel (aka queue or exchanger) | 
Top-level suspending functions:
| Name | Description | 
|---|---|
| delay | Non-blocking sleep | 
| yield | Yields thread in single-threaded dispatchers | 
| withContext | Switches to a different context | 
| withTimeout | Set execution time-limit with exception on timeout | 
| withTimeoutOrNull | Set execution time-limit will null result on timeout | 
| awaitAll | Awaits for successful completion of all given jobs or exceptional completion of any | 
| joinAll | Joins on all given jobs | 
Cancellation support for user-defined suspending functions is available with suspendCancellableCoroutine helper function. NonCancellable job object is provided to suppress cancellation with  withContext(NonCancellable) {...} block of code.
Select expression waits for the result of multiple suspending functions simultaneously:
| Receiver | Suspending function | Select clause | Non-suspending version | 
|---|---|---|---|
| Job | join | onJoin | isCompleted | 
| Deferred | await | onAwait | isCompleted | 
| SendChannel | send | onSend | trySend | 
| ReceiveChannel | receive | onReceive | tryReceive | 
| ReceiveChannel | kotlinx.coroutines.channels.receiveCatching | kotlinx.coroutines.channels.onReceiveCatching | tryReceive | 
| none | delay | onTimeout | none | 
Core primitives to work with coroutines.
Coroutine builder functions:
| Name | Result | Scope | Description | 
|---|---|---|---|
| launch | Job | CoroutineScope | Launches coroutine that does not have any result | 
| async | Deferred | CoroutineScope | Returns a single value with the future result | 
| produce | ReceiveChannel | ProducerScope | Produces a stream of elements | 
| runBlocking | T | CoroutineScope | Blocks the thread while the coroutine runs | 
Coroutine dispatchers implementing CoroutineDispatcher:
| Name | Description | 
|---|---|
| Dispatchers.Default | Confines coroutine execution to a shared pool of background threads | 
| Dispatchers.Unconfined | Does not confine coroutine execution in any way | 
More context elements:
| Name | Description | 
|---|---|
| NonCancellable | A non-cancelable job that is always active | 
| CoroutineExceptionHandler | Handler for uncaught exception | 
Synchronization primitives for coroutines:
| Name | Suspending functions | Description | 
|---|---|---|
| Mutex | lock | Mutual exclusion | 
| Channel | send, receive | Communication channel (aka queue or exchanger) | 
Top-level suspending functions:
| Name | Description | 
|---|---|
| delay | Non-blocking sleep | 
| yield | Yields thread in single-threaded dispatchers | 
| withContext | Switches to a different context | 
| withTimeout | Set execution time-limit with exception on timeout | 
| withTimeoutOrNull | Set execution time-limit will null result on timeout | 
| awaitAll | Awaits for successful completion of all given jobs or exceptional completion of any | 
| joinAll | Joins on all given jobs | 
Cancellation support for user-defined suspending functions is available with suspendCancellableCoroutine helper function. NonCancellable job object is provided to suppress cancellation with  withContext(NonCancellable) {...} block of code.
Select expression waits for the result of multiple suspending functions simultaneously:
| Receiver | Suspending function | Select clause | Non-suspending version | 
|---|---|---|---|
| Job | join | onJoin | isCompleted | 
| Deferred | await | onAwait | isCompleted | 
| SendChannel | send | onSend | trySend | 
| ReceiveChannel | receive | onReceive | tryReceive | 
| ReceiveChannel | kotlinx.coroutines.channels.receiveCatching | kotlinx.coroutines.channels.onReceiveCatching | tryReceive | 
| none | delay | onTimeout | none | 
Core primitives to work with coroutines.
Coroutine builder functions:
| Name | Result | Scope | Description | 
|---|---|---|---|
| launch | Job | CoroutineScope | Launches coroutine that does not have any result | 
| async | Deferred | CoroutineScope | Returns a single value with the future result | 
| produce | ReceiveChannel | ProducerScope | Produces a stream of elements | 
| kotlinx.coroutines.runBlocking | T | CoroutineScope | Blocks the thread while the coroutine runs | 
Coroutine dispatchers implementing CoroutineDispatcher:
| Name | Description | 
|---|---|
| Dispatchers.Default | Confines coroutine execution to a shared pool of background threads | 
| Dispatchers.Unconfined | Does not confine coroutine execution in any way | 
More context elements:
| Name | Description | 
|---|---|
| NonCancellable | A non-cancelable job that is always active | 
| CoroutineExceptionHandler | Handler for uncaught exception | 
Synchronization primitives for coroutines:
| Name | Suspending functions | Description | 
|---|---|---|
| Mutex | lock | Mutual exclusion | 
| Channel | send, receive | Communication channel (aka queue or exchanger) | 
Top-level suspending functions:
| Name | Description | 
|---|---|
| delay | Non-blocking sleep | 
| yield | Yields thread in single-threaded dispatchers | 
| withContext | Switches to a different context | 
| withTimeout | Set execution time-limit with exception on timeout | 
| withTimeoutOrNull | Set execution time-limit will null result on timeout | 
| awaitAll | Awaits for successful completion of all given jobs or exceptional completion of any | 
| joinAll | Joins on all given jobs | 
Cancellation support for user-defined suspending functions is available with suspendCancellableCoroutine helper function. NonCancellable job object is provided to suppress cancellation with  withContext(NonCancellable) {...} block of code.
Select expression waits for the result of multiple suspending functions simultaneously:
| Receiver | Suspending function | Select clause | Non-suspending version | 
|---|---|---|---|
| Job | join | onJoin | isCompleted | 
| Deferred | await | onAwait | isCompleted | 
| SendChannel | send | onSend | trySend | 
| ReceiveChannel | receive | onReceive | tryReceive | 
| ReceiveChannel | kotlinx.coroutines.channels.receiveCatching | kotlinx.coroutines.channels.onReceiveCatching | tryReceive | 
| none | delay | onTimeout | none | 
Core primitives to work with coroutines.
Coroutine builder functions:
| Name | Result | Scope | Description | 
|---|---|---|---|
| launch | Job | CoroutineScope | Launches coroutine that does not have any result | 
| async | Deferred | CoroutineScope | Returns a single value with the future result | 
| produce | ReceiveChannel | ProducerScope | Produces a stream of elements | 
| runBlocking | T | CoroutineScope | Blocks the thread while the coroutine runs | 
Coroutine dispatchers implementing CoroutineDispatcher:
| Name | Description | 
|---|---|
| Dispatchers.Default | Confines coroutine execution to a shared pool of background threads | 
| Dispatchers.Unconfined | Does not confine coroutine execution in any way | 
More context elements:
| Name | Description | 
|---|---|
| NonCancellable | A non-cancelable job that is always active | 
| CoroutineExceptionHandler | Handler for uncaught exception | 
Synchronization primitives for coroutines:
| Name | Suspending functions | Description | 
|---|---|---|
| Mutex | lock | Mutual exclusion | 
| Channel | send, receive | Communication channel (aka queue or exchanger) | 
Top-level suspending functions:
| Name | Description | 
|---|---|
| delay | Non-blocking sleep | 
| yield | Yields thread in single-threaded dispatchers | 
| withContext | Switches to a different context | 
| withTimeout | Set execution time-limit with exception on timeout | 
| withTimeoutOrNull | Set execution time-limit will null result on timeout | 
| awaitAll | Awaits for successful completion of all given jobs or exceptional completion of any | 
| joinAll | Joins on all given jobs | 
Cancellation support for user-defined suspending functions is available with suspendCancellableCoroutine helper function. NonCancellable job object is provided to suppress cancellation with  withContext(NonCancellable) {...} block of code.
Select expression waits for the result of multiple suspending functions simultaneously:
| Receiver | Suspending function | Select clause | Non-suspending version | 
|---|---|---|---|
| Job | join | onJoin | isCompleted | 
| Deferred | await | onAwait | isCompleted | 
| SendChannel | send | onSend | trySend | 
| ReceiveChannel | receive | onReceive | tryReceive | 
| ReceiveChannel | kotlinx.coroutines.channels.receiveCatching | kotlinx.coroutines.channels.onReceiveCatching | tryReceive | 
| none | delay | onTimeout | none | 
Core primitives to work with coroutines.
Coroutine builder functions:
| Name | Result | Scope | Description | 
|---|---|---|---|
| launch | Job | CoroutineScope | Launches coroutine that does not have any result | 
| async | Deferred | CoroutineScope | Returns a single value with the future result | 
| produce | ReceiveChannel | ProducerScope | Produces a stream of elements | 
| runBlocking | T | CoroutineScope | Blocks the thread while the coroutine runs | 
Coroutine dispatchers implementing CoroutineDispatcher:
| Name | Description | 
|---|---|
| Dispatchers.Default | Confines coroutine execution to a shared pool of background threads | 
| Dispatchers.Unconfined | Does not confine coroutine execution in any way | 
More context elements:
| Name | Description | 
|---|---|
| NonCancellable | A non-cancelable job that is always active | 
| CoroutineExceptionHandler | Handler for uncaught exception | 
Synchronization primitives for coroutines:
| Name | Suspending functions | Description | 
|---|---|---|
| Mutex | lock | Mutual exclusion | 
| Channel | send, receive | Communication channel (aka queue or exchanger) | 
Top-level suspending functions:
| Name | Description | 
|---|---|
| delay | Non-blocking sleep | 
| yield | Yields thread in single-threaded dispatchers | 
| withContext | Switches to a different context | 
| withTimeout | Set execution time-limit with exception on timeout | 
| withTimeoutOrNull | Set execution time-limit will null result on timeout | 
| awaitAll | Awaits for successful completion of all given jobs or exceptional completion of any | 
| joinAll | Joins on all given jobs | 
Cancellation support for user-defined suspending functions is available with suspendCancellableCoroutine helper function. NonCancellable job object is provided to suppress cancellation with  withContext(NonCancellable) {...} block of code.
Select expression waits for the result of multiple suspending functions simultaneously:
| Receiver | Suspending function | Select clause | Non-suspending version | 
|---|---|---|---|
| Job | join | onJoin | isCompleted | 
| Deferred | await | onAwait | isCompleted | 
| SendChannel | send | onSend | trySend | 
| ReceiveChannel | receive | onReceive | tryReceive | 
| ReceiveChannel | kotlinx.coroutines.channels.receiveCatching | kotlinx.coroutines.channels.onReceiveCatching | tryReceive | 
| none | delay | onTimeout | none |