Sourced from org.jetbrains.kotlinx:kotlinx-coroutines-core's releases.
1.7.0
Core API significant improvements
- New
Channelimplementation with significant performance improvements across the API (#3621).- New
selectoperator implementation: faster, more lightweight, and more robust (#3020).MutexandSemaphorenow share the same underlying data structure (#3020).Dispatchers.IOis added to K/N (#3205)
newFixedThreadPoolandDispatchers.Defaultimplementations on K/N were wholly rewritten to support graceful growth under load (#3595).kotlinx-coroutines-testrework:
- Add the
timeoutparameter torunTestfor the whole-test timeout, 10 seconds by default (#3270). This replaces the configuration of quiescence timeouts, which is now deprecated (#3603).- The
withTimeoutexception messages indicate if the timeout used the virtual time (#3588).TestCoroutineScheduler,runTest, andTestScopeAPI are promoted to stable (#3622).runTestnow also fails if there were uncaught exceptions in coroutines not inherited from the test coroutine (#1205).Breaking changes
- Old K/N memory model is no longer supported (#3375).
- New generic upper bounds were added to reactive integration API where the language since 1.8.0 dictates (#3393).
kotlinx-coroutines-coreandkotlinx-coroutines-jdk8artifacts were merged into a single artifact (#3268).- Artificial stackframes in stacktrace recovery no longer contain the
\bsymbol and are now navigable in IDE and supplied with proper documentation (#2291).CoroutineContext.isActivereturnstruefor contexts without any job in them (#3300).Bug fixes and improvements
- Kotlin version is updated to 1.8.20
- Atomicfu version is updated to 0.20.2.
JavaFxversion is updated to 17.0.2 inkotlinx-coroutines-javafx(#3671)..- JPMS is supported (#2237). Thanks
@lion7!BroadcastChanneland all the corresponding API are deprecated (#2680).- Added all supported K/N targets (#3601, #812, #855).
- K/N
Dispatchers.Defaultis backed by the number of threads equal to the number of available cores (#3366).- Fixed an issue where some coroutines' internal exceptions were not properly serializable (#3328).
- Introduced
Job.parentAPI (#3201).- Fixed a bug when
TestSchedulerleaked cancelled jobs (#3398).TestScope.timeSourcenow provides comparable time marks (#3617). Thanks@hfhbd!- Fixed an issue when cancelled
withTimeouthandles were preserved in JS runtime (#3440).- Ensure
awaitFrameonly awaits a single frame when used from the main looper (#3432). Thanks@pablobaxter!- Obsolete
Class-Pathattribute was removed fromkotlinx-coroutines-debug.jarmanifest (#3361).- Fixed a bug when
updateThreadContextoperated on the parent context (#3411).- Added new
Flow.filterIsInstanceextension (#3240).Dispatchers.Defaultthread name prefixes are now configurable with system property (#3231).- Added
Flow.timeoutoperator as@FlowPreview(#2624). Thanks@pablobaxter!- Improved the performance of the
futurebuilder in case of exceptions (#3475). Thanks@He-Pin!Mono.awaitSingleOrNullnow waits for theonCompletesignal (#3487).Channel.isClosedForSendandChannel.isClosedForReceiveare promoted from experimental to delicate (#3448).- Fixed a data race in native
EventLoop(#3547).Dispatchers.IO.limitedParallelism(valueLargerThanIOSize)no longer creates an additional wrapper (#3442). Thanks@dovchinnikov!- Various
@FlowPreviewand@ExperimentalCoroutinesApiare promoted to experimental and stable respectively (#3542, #3097, #3548).- Performance improvements in
Dispatchers.DefaultandDispatchers.IO(#3416, #3418).- Fixed a bug when internal
suspendCancellableCoroutineReusablemight have hanged (#3613).
... (truncated)
Sourced from org.jetbrains.kotlinx:kotlinx-coroutines-core's changelog.
Version 1.7.0
Core API significant improvements
- New
Channelimplementation with significant performance improvements across the API (#3621).- New
selectoperator implementation: faster, more lightweight, and more robust (#3020).MutexandSemaphorenow share the same underlying data structure (#3020).Dispatchers.IOis added to K/N (#3205)
newFixedThreadPoolandDispatchers.Defaultimplementations on K/N were wholly rewritten to support graceful growth under load (#3595).kotlinx-coroutines-testrework:
- Add the
timeoutparameter torunTestfor the whole-test timeout, 10 seconds by default (#3270). This replaces the configuration of quiescence timeouts, which is now deprecated (#3603).- The
withTimeoutexception messages indicate if the timeout used the virtual time (#3588).TestCoroutineScheduler,runTest, andTestScopeAPI are promoted to stable (#3622).runTestnow also fails if there were uncaught exceptions in coroutines not inherited from the test coroutine (#1205).Breaking changes
- Old K/N memory model is no longer supported (#3375).
- New generic upper bounds were added to reactive integration API where the language since 1.8.0 dictates (#3393).
kotlinx-coroutines-coreandkotlinx-coroutines-jdk8artifacts were merged into a single artifact (#3268).- Artificial stackframes in stacktrace recovery no longer contain the
\bsymbol and are now navigable in IDE and supplied with proper documentation (#2291).CoroutineContext.isActivereturnstruefor contexts without any job in them (#3300).Bug fixes and improvements
- Kotlin version is updated to 1.8.20
- Atomicfu version is updated to 0.20.2.
JavaFxversion is updated to 17.0.2 inkotlinx-coroutines-javafx(#3671)..- JPMS is supported (#2237). Thanks
@lion7!BroadcastChanneland all the corresponding API are deprecated (#2680).- Added all supported K/N targets (#3601, #812, #855).
- K/N
Dispatchers.Defaultis backed by the number of threads equal to the number of available cores (#3366).- Fixed an issue where some coroutines' internal exceptions were not properly serializable (#3328).
- Introduced
Job.parentAPI (#3201).- Fixed a bug when
TestSchedulerleaked cancelled jobs (#3398).TestScope.timeSourcenow provides comparable time marks (#3617). Thanks@hfhbd!- Fixed an issue when cancelled
withTimeouthandles were preserved in JS runtime (#3440).- Ensure
awaitFrameonly awaits a single frame when used from the main looper (#3432). Thanks@pablobaxter!- Obsolete
Class-Pathattribute was removed fromkotlinx-coroutines-debug.jarmanifest (#3361).- Fixed a bug when
updateThreadContextoperated on the parent context (#3411).- Added new
Flow.filterIsInstanceextension (#3240).Dispatchers.Defaultthread name prefixes are now configurable with system property (#3231).- Added
Flow.timeoutoperator as@FlowPreview(#2624). Thanks@pablobaxter!- Improved the performance of the
futurebuilder in case of exceptions (#3475). Thanks@He-Pin!Mono.awaitSingleOrNullnow waits for theonCompletesignal (#3487).Channel.isClosedForSendandChannel.isClosedForReceiveare promoted from experimental to delicate (#3448).- Fixed a data race in native
EventLoop(#3547).Dispatchers.IO.limitedParallelism(valueLargerThanIOSize)no longer creates an additional wrapper (#3442). Thanks@dovchinnikov!- Various
@FlowPreviewand@ExperimentalCoroutinesApiare promoted to experimental and stable respectively (#3542, #3097, #3548).- Performance improvements in
Dispatchers.DefaultandDispatchers.IO(#3416, #3418).
... (truncated)
2e92d58
Merge pull request #3740
from Kotlin/version-1.7.072ef8fd
Version 1.7.06165533
Fix non-linearizability in BufferedChannel.expandBuffer()
(#3730)a027d68
Merge branch 'master' into develop41b4665
Support disabling reporting of uncaught exceptions in tests (#3736)25a3553
Properly recover exceptions when they are constructed from 'Throwable…
(#3731)298419f
Fix the error message if there were uncaught exceptions before test (#3733)c8ef9ec
Update Knit-generated tests5039855
minor fix for doc and sample code (#3728)d6f1403
Fix MutexCancellationStressTest flakiness (#3724)