You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
launch, async, produce, actor and other integration-specific coroutine builders now use DefaultDispatcher as the default value for their context parameter.
When a context is explicitly specified, newCoroutineContext function checks if there is any
interceptor/dispatcher defined in the context and uses DefaultDispatcher if there is none.
DefaultDispatcher is currently defined to be equal to CommonPool.
Examples in the guide now start with launch { ... } code and explanation on the nature
and the need for coroutine context starts in "Coroutine context and dispatchers" section.
Parent coroutines now wait for their children (see #125):
Job completing state is introduced in documentation as a state in which parent coroutine waits for its children.
Job.attachChild and Job.cancelChildren are introduced.
Job.join now always checks cancellation status of invoker coroutine for predictable behavior when joining
failed child coroutine.
Job.cancelAndJoin extension is introduced.
CoroutineContext.cancel and CoroutineContext.cancelChildren extensions are introduced for convenience.
withTimeout/withTimeoutOrNull blocks become proper coroutines that have CoroutineScope and wait for children, too.
Diagnostics in cancellation and unexpected exception messages are improved,
coroutine name is included in debug mode.
Fixed cancellable suspending functions to throw CancellationException (as was documented before) even when
the coroutine is cancelled with another application-specific exception.
JobCancellationException is introduced as a specific subclass of CancellationException which is
used for coroutines that are cancelled without cause and to wrap application-specific exceptions.
Job.getCompletionException is renamed to Job.getCancellationException and return a wrapper exception if needed.
Introduced Deferred.getCompletionExceptionOrNull to get not-wrapped exception result of async task.
Updated docs for Job & Deferred to explain parent/child relations.
select expression is modularized:
SelectClause(0,1,2) interfaces are introduced, so that synchronization
constructs can define their select clauses without having to modify
the source of the SelectBuilder in kotlinx-corounes-core module.
Job.onJoin, Deferred.onAwait, Mutex.onLock, SendChannel.onSend, ReceiveChannel.onReceive, etc
that were functions before are now properties returning the corresponding select clauses. Old functions
are left in bytecode for backwards compatibility on use-site, but any outside code that was implementing those
interfaces by itself must be updated.
This opens road to moving channels into a separate module in future updates.
Renamed TimeoutException to TimeoutCancellationException (old name is deprecated).
Fixed various minor problems:
JavaFx toolkit is now initialized by JavaFx context (see #108).
kotlinx-coroutines-io module is introduced. It is a work-in-progress on ByteReadChannel and ByteWriteChannel
interfaces, their implementations, and related classes to enable convenient coroutine integration with various
asynchronous I/O libraries and sockets. It is currently unstable and will change in the next release.