CoroutineStart
Defines start options for coroutines builders. It is used in start
parameter of launch, async, and other coroutine builder functions.
The summary of coroutine start options is:
DEFAULT -- immediately schedules coroutine for execution according to its context;
LAZY -- starts coroutine lazily, only when it is needed;
ATOMIC -- atomically (in a non-cancellable way) schedules coroutine for execution according to its context;
UNDISPATCHED -- immediately executes coroutine until its first suspension point in the current thread.
Entries
Atomically (i.e., in a non-cancellable way) schedules the coroutine for execution according to its context. This is similar to DEFAULT, but the coroutine cannot be cancelled before it starts executing.
Immediately executes the coroutine until its first suspension point in the current thread similarly to the coroutine being started using Dispatchers.Unconfined. However, when the coroutine is resumed from suspension it is dispatched according to the CoroutineDispatcher in its context.