CopyableThreadContextElement
now properly copies an element when crossing the coroutine boundary in flowOn
(#3787). Thanks @wanyingd1996!newSingleThreadContext
from closing (#3768).Mutex
during tryLock
/unlock
sequence with owners is fixed (#3745).runTest
is restored (#3673)onUndeliveredElement
now allocate less memory (#3646)Channel
implementation with significant performance improvements across the API (#3621).select
operator implementation: faster, more lightweight, and more robust (#3020).Mutex
and Semaphore
now share the same underlying data structure (#3020).Dispatchers.IO
is added to K/N (#3205)newFixedThreadPool
and Dispatchers.Default
implementations on K/N were wholly rewritten to support graceful growth under load (#3595).kotlinx-coroutines-test
rework:timeout
parameter to runTest
for the whole-test timeout, 10 seconds by default (#3270). This replaces the configuration of quiescence timeouts, which is now deprecated (#3603).withTimeout
exception messages indicate if the timeout used the virtual time (#3588).TestCoroutineScheduler
, runTest
, and TestScope
API are promoted to stable (#3622).runTest
now also fails if there were uncaught exceptions in coroutines not inherited from the test coroutine (#1205).kotlinx-coroutines-core
and kotlinx-coroutines-jdk8
artifacts were merged into a single artifact (#3268).\b
symbol and are now navigable in IDE and supplied with proper documentation (#2291).CoroutineContext.isActive
returns true
for contexts without any job in them (#3300).JavaFx
version is updated to 17.0.2 in kotlinx-coroutines-javafx
(#3671)..BroadcastChannel
and all the corresponding API are deprecated (#2680).Dispatchers.Default
is backed by the number of threads equal to the number of available cores (#3366).Job.parent
API (#3201).TestScheduler
leaked cancelled jobs (#3398).TestScope.timeSource
now provides comparable time marks (#3617). Thanks @hfhbd!withTimeout
handles were preserved in JS runtime (#3440).awaitFrame
only awaits a single frame when used from the main looper (#3432). Thanks @pablobaxter!Class-Path
attribute was removed from kotlinx-coroutines-debug.jar
manifest (#3361).updateThreadContext
operated on the parent context (#3411).Flow.filterIsInstance
extension (#3240).Dispatchers.Default
thread name prefixes are now configurable with system property (#3231).Flow.timeout
operator as @FlowPreview
(#2624). Thanks @pablobaxter!future
builder in case of exceptions (#3475). Thanks @He-Pin!Mono.awaitSingleOrNull
now waits for the onComplete
signal (#3487).Channel.isClosedForSend
and Channel.isClosedForReceive
are promoted from experimental to delicate (#3448).EventLoop
(#3547).Dispatchers.IO.limitedParallelism(valueLargerThanIOSize)
no longer creates an additional wrapper (#3442). Thanks @dovchinnikov!@FlowPreview
and @ExperimentalCoroutinesApi
are promoted to experimental and stable respectively (#3542, #3097, #3548).Dispatchers.Default
and Dispatchers.IO
(#3416, #3418).suspendCancellableCoroutineReusable
might have hanged (#3613).CoroutineExceptionHandler
is no longer invoked in case of unprocessed future
failure (#3452).withContext
operator (#3592).DebugProbes
(#3527).CoroutineDispatcher.asExecutor()
runs tasks without dispatching if the dispatcher is unconfined (#3683). Thanks @odedniv!SharedFlow.toMutableList
and SharedFlow.toSet
lints are introduced (#3706).Channel.invokeOnClose
is promoted to stable API (#3358).Dispatchers.Default
and Dispatchers.IO
during the startup phase (#3652).Dispatchers.Default
(#3642).limitedParallelism
to perform dispatches even after the underlying dispatcher was closed (#3672).cause
was selected (#3714).Changelog for previous versions may be found in CHANGES_UP_TO_1.7.md