Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

InvalidMutabilityException raised by withTimeout {} when the scope is frozen (1.5.0-RC-native-mt) #2688

Closed
andersio opened this issue May 7, 2021 · 2 comments
Labels

Comments

@andersio
Copy link

andersio commented May 7, 2021

Environment:

  • Kotlin 1.5.0
  • Coroutines 1.5.0-RC-native-mt
  • iosX64 target

Issues

Neither of these issues apply to 1.4.3-native-mt on Kotlin 1.4.32.

  1. withTimeout {} throws InvalidMutabilityException, when the CoroutineScope it being launched in is frozen.
  2. runBlocking {} does not stop spinning after InvalidMutabilityException is thrown.

Case to reproduce

    @Test
    fun reprod() = runTesting {
        this.freeze()

        try {
            withTimeout(Duration.seconds(10)) {
                print("Hello world")
            }
        } catch (error: Throwable) {
            print("Exception: $error")
            error.printStackTrace()

            throw error
        }
    }
    @Test
    fun reprod() = runTesting {
        try {
            coroutineScope {
                this.freeze()
                withTimeout(Duration.seconds(10)) {
                    print("Hello world")
                }
            }
        } catch (error: Throwable) {
            print("Exception: $error")
            error.printStackTrace()

            throw error
        }
    }

Stack trace

Exception: kotlin.native.concurrent.InvalidMutabilityException: mutation attempt of frozen kotlinx.coroutines.TimeoutCoroutine@a7c1fd08kotlin.native.concurrent.InvalidMutabilityException: mutation attempt of frozen kotlinx.coroutines.TimeoutCoroutine@a7c1fd08
Invalid connection: com.apple.coresymbolicationd
    at 0   test.kexe                           0x000000010ff16c3f kfun:kotlin.Throwable#<init>(kotlin.String?){} + 95 (/Users/teamcity1/teamcity_work/290aee0e088a1666/runtime/src/main/kotlin/kotlin/Throwable.kt:23:37)
    at 1   test.kexe                           0x000000010ff0fb5d kfun:kotlin.Exception#<init>(kotlin.String?){} + 93 (/Users/teamcity1/teamcity_work/290aee0e088a1666/runtime/src/main/kotlin/kotlin/Exceptions.kt:23:44)
    at 2   test.kexe                           0x000000010ff0fdcd kfun:kotlin.RuntimeException#<init>(kotlin.String?){} + 93 (/Users/teamcity1/teamcity_work/290aee0e088a1666/runtime/src/main/kotlin/kotlin/Exceptions.kt:34:44)
    at 3   test.kexe                           0x000000010ff4572d kfun:kotlin.native.concurrent.InvalidMutabilityException#<init>(kotlin.String){} + 93 (/Users/teamcity1/teamcity_work/290aee0e088a1666/runtime/src/main/kotlin/kotlin/native/concurrent/Freezing.kt:22:60)
    at 4   test.kexe                           0x000000010ff46f2f ThrowInvalidMutabilityException + 431 (/Users/teamcity1/teamcity_work/290aee0e088a1666/runtime/src/main/kotlin/kotlin/native/concurrent/Internal.kt:93:11)
    at 5   test.kexe                           0x00000001100b9600 MutationCheck + 128
    at 6   test.kexe                           0x0000000110122e0f kfun:kotlinx.coroutines.TimeoutCoroutine.<init>#internal + 303 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/Timeout.kt:152:5)
    at 7   test.kexe                           0x0000000110121f85 kfun:kotlinx.coroutines#withTimeout(kotlin.Long;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 + 341 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/Timeout.kt:44:22)
    at 8   test.kexe                           0x000000011012214a kfun:kotlinx.coroutines#withTimeout(kotlin.time.Duration;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 + 202 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/Timeout.kt:72:12)
    at 9   test.kexe                           0x000000010feafa4a kfun:me.sphere.appcore.utils.LoopTests.$reprod$lambda-4COROUTINE$2.invokeSuspend#internal + 794 (/Users/anders/repos/ios/AppCore/appcore-utils/src/commonTest/kotlin/me/sphere/appcore/utils/LoopTests.kt:43:13)
    at 10  test.kexe                           0x000000010feaff7b kfun:me.sphere.appcore.utils.LoopTests.$reprod$lambda-4COROUTINE$2.invoke#internal + 331 (/Users/anders/repos/ios/AppCore/appcore-utils/src/commonTest/kotlin/me/sphere/appcore/utils/LoopTests.kt:39:31)
    at 11  test.kexe                           0x000000010fea8ca7 kfun:me.sphere.test.support.$runTesting$lambda-0COROUTINE$14.invokeSuspend#internal + 679 (/Users/anders/repos/ios/AppCore/appcore-test-utils/src/iosMain/kotlin/me/sphere/test/support/runTesting.kt:6:80)
    at 12  test.kexe                           0x000000010ff38a40 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 800 (/Users/teamcity1/teamcity_work/290aee0e088a1666/runtime/src/main/kotlin/kotlin/coroutines/ContinuationImpl.kt:30:39)
    at 13  test.kexe                           0x0000000110182d70 kfun:kotlinx.coroutines.DispatchedTask#run(){} + 2880 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/internal/DispatchedTask.kt:106:71)
    at 14  test.kexe                           0x0000000110103709 kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long + 905 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/EventLoop.common.kt:277:22)
    at 15  test.kexe                           0x00000001101a723b kfun:kotlinx.coroutines#runEventLoop(kotlinx.coroutines.EventLoop?;kotlin.Function0<kotlin.Boolean>){} + 843 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/native/src/Builders.kt:80:40)
    at 16  test.kexe                           0x00000001101a8ede kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal + 430 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/native/src/Builders.kt:67:9)
    at 17  test.kexe                           0x00000001101a6936 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 + 1286 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/native/src/Builders.kt:50:22)
    at 18  test.kexe                           0x00000001101a6e1e kfun:kotlinx.coroutines#runBlocking$default(kotlin.coroutines.CoroutineContext?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>;kotlin.Int){0§<kotlin.Any?>}0:0 + 350 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/native/src/Builders.kt:33:15)
    at 19  test.kexe                           0x000000010fea8854 kfun:me.sphere.test.support#runTesting(kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} + 228 (/Users/anders/repos/ios/AppCore/appcore-test-utils/src/iosMain/kotlin/me/sphere/test/support/runTesting.kt:6:66)
    at 20  test.kexe                           0x000000010feadace kfun:me.sphere.appcore.utils.LoopTests#reprod(){} + 158 (/Users/anders/repos/ios/AppCore/appcore-utils/src/commonTest/kotlin/me/sphere/appcore/utils/LoopTests.kt:39:20)
    at 21  test.kexe                           0x000000010feb9a28 kfun:me.sphere.appcore.utils.$LoopTests$test$0.$reprod$FUNCTION_REFERENCE$14.invoke#internal + 72 (/Users/anders/repos/ios/AppCore/appcore-utils/src/commonTest/kotlin/me/sphere/appcore/utils/LoopTests.kt:39:5)
    at 22  test.kexe                           0x000000010feb9c61 kfun:me.sphere.appcore.utils.$LoopTests$test$0.$reprod$FUNCTION_REFERENCE$14.$<bridge-UNNN>invoke(-1:0){}#internal + 97 (/Users/anders/repos/ios/AppCore/appcore-utils/src/commonTest/kotlin/me/sphere/appcore/utils/LoopTests.kt:39:5)
    at 23  test.kexe                           0x000000010ff727ad kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} + 1325 (/Users/teamcity1/teamcity_work/290aee0e088a1666/runtime/src/main/kotlin/kotlin/native/internal/test/TestSuite.kt:85:26)
    at 24  test.kexe                           0x000000010ff6a280 kfun:kotlin.native.internal.test.TestRunner.run#internal + 3584 (/Users/teamcity1/teamcity_work/290aee0e088a1666/runtime/src/main/kotlin/kotlin/native/internal/test/TestRunner.kt:245:30)
    at 25  test.kexe                           0x000000010ff6b81e kfun:kotlin.native.internal.test.TestRunner.runIteration#internal + 3054 (/Users/teamcity1/teamcity_work/290aee0e088a1666/runtime/src/main/kotlin/kotlin/native/internal/test/TestRunner.kt:271:55)
    at 26  test.kexe                           0x000000010ff6c16f kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int + 1007 (/Users/teamcity1/teamcity_work/290aee0e088a1666/runtime/src/main/kotlin/kotlin/native/internal/test/TestRunner.kt:286:17)
    at 27  test.kexe                           0x000000010ff5fb28 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int + 312 (/Users/teamcity1/teamcity_work/290aee0e088a1666/runtime/src/main/kotlin/kotlin/native/internal/test/Launcher.kt:22:53)
    at 28  test.kexe                           0x000000010ff5fc1c kfun:kotlin.native.internal.test#main(kotlin.Array<kotlin.String>){} + 60 (/Users/teamcity1/teamcity_work/290aee0e088a1666/runtime/src/main/kotlin/kotlin/native/internal/test/Launcher.kt:26:20)
    at 29  test.kexe                           0x000000010feba7f7 Konan_start + 167 (/Users/teamcity1/teamcity_work/290aee0e088a1666/runtime/src/main/kotlin/kotlin/native/internal/test/Launcher.kt:25:1)
@andersio andersio changed the title InvalidMutabilityException raised by withTimeout {} when its parent scope is frozen (1.5.0-RC-native-mt) InvalidMutabilityException raised by withTimeout {} when the scope is frozen (1.5.0-RC-native-mt) May 7, 2021
@andersio
Copy link
Author

andersio commented May 7, 2021

The issue seems to be that the object is already frozen when the init process attempts to set TimeoutCoroutine::time. Perhaps related to superclasses' use of initParentJob, which is documented to freeze this?

private class TimeoutCoroutine<U, in T: U>(
@JvmField val time: Long,
uCont: Continuation<U> // unintercepted continuation
) : ScopeCoroutine<T>(uCont.context, uCont), Runnable {

qwwdfsad pushed a commit that referenced this issue May 14, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
qwwdfsad pushed a commit that referenced this issue May 14, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
qwwdfsad pushed a commit that referenced this issue May 14, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
@qwwdfsad
Copy link
Collaborator

Fixed in 1.5.0-native-mt

qwwdfsad pushed a commit that referenced this issue Jul 12, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
qwwdfsad pushed a commit that referenced this issue Jul 12, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
qwwdfsad pushed a commit that referenced this issue Jul 12, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
qwwdfsad pushed a commit that referenced this issue Jul 12, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
qwwdfsad pushed a commit that referenced this issue Aug 26, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
qwwdfsad pushed a commit that referenced this issue Aug 26, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
qwwdfsad pushed a commit that referenced this issue Sep 2, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
qwwdfsad pushed a commit that referenced this issue Dec 14, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
qwwdfsad pushed a commit that referenced this issue Dec 15, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
qwwdfsad pushed a commit that referenced this issue Dec 15, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
qwwdfsad pushed a commit that referenced this issue Dec 15, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
qwwdfsad pushed a commit that referenced this issue Dec 15, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
qwwdfsad pushed a commit that referenced this issue Dec 15, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
qwwdfsad pushed a commit that referenced this issue Dec 16, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
qwwdfsad pushed a commit that referenced this issue Dec 22, 2021
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
qwwdfsad pushed a commit that referenced this issue Apr 5, 2022
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
qwwdfsad pushed a commit that referenced this issue Apr 5, 2022
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
Fixes #3136
qwwdfsad pushed a commit that referenced this issue Jun 22, 2022
* Provides newSingleThreadedContext.
* Provides Dispatchers.Main on iOS, Dispatchers.Default everywhere.
* Coroutine references (Job), all kinds of channels and StateFlow are shareable across workers.
* Each individual coroutine is confined to a single worker.
* Update Dispatchers docs to account for native-mt changes.
* Multithreaded support in select expression.
* Fix ObjC autorelease object leaks with native-mt dispatchers (#2477)

Additional fixes:
* Fixed broadcast builder with different thread
* Fixed adding a child to a frozen parent job

Fixes #462
Fixes #470
Fixes #765
Fixes #1645
Fixes #1751
Fixes #1828
Fixes #1831
Fixes #1764
Fixes #2064
Fixes #2025
Fixes #2226
Fixes #2138
Fixes #2263
Fixes #2322
Fixes #2283
Fixes #2688
Fixes #2398
Fixes #3136
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants