kotlinx.coroutines v1.4.3 Release Notes

  • General changes

    • โช Thread context is properly preserved and restored for coroutines without ThreadContextElement (#985)
    • โšก๏ธ ThreadContextElements are now restored in the opposite order from update (#2195)
    • ๐Ÿ‘Œ Improved performance of combine with 4 parameters, thanks to @alexvanyo (#2419)
    • Debug agent sanitizer leaves at least one frame with source location (#1437)
    • โšก๏ธ Update Reactor version in kotlinx-coroutines-reactor to 3.4.1, thanks to @sokomishalov (#2432)
    • callInPlace contract added to ReceiveChannel.consume (#941)
    • CoroutineStart.UNDISPATCHED promoted to stable API (#1393)
    • โšก๏ธ Kotlin updated to 1.4.30
    • ๐Ÿš€ kotlinx.coroutines are now released directly to MavenCentral
    • โฌ‡๏ธ Reduced the size of DispatchedCoroutine by a field
    • โฑ Internal class TimeSource renamed to SchedulerTimeSource to prevent wildcard import issues (#2537)

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Fixed the problem that prevented implementation via delegation for Job interface (#2423)
    • ๐Ÿ›  Fixed incorrect ProGuard rules that allowed shrinking volatile felds (#1564)
    • ๐Ÿ›  Fixed await/asDeferredforMinimalState` implementations in jdk8 module (#2456)
    • ๐Ÿ›  Fixed bug when onUndeliveredElement wasn't called for unlimited channels (#2435)
    • ๐Ÿ›  Fixed a bug when ListenableFuture.isCancelled returned from asListenableFuture could have thrown an exception, thanks to @vadimsemenov (#2421)
    • Coroutine in callbackFlow and produce is properly cancelled when the channel was closed separately (#2506)