kotlinx.coroutines
kotlinx.coroutines copied to clipboard
K/N thread sanitizer data races
trafficstars
CancellableContinuationImpl.getParentHandle/setParentHandle
WARNING: ThreadSanitizer: data race (pid=88874)
Read of size 8 at 0x7b1400020b60 by thread T3:
#0 kfun:kotlinx.coroutines.CancellableContinuationImpl.<get-parentHandle>#internal CancellableContinuationImpl.kt:75 (newMM.kexe:x86_64+0x10019410b)
#1 kfun:kotlinx.coroutines.CancellableContinuationImpl#detachChild(){} CancellableContinuationImpl.kt:495 (newMM.kexe:x86_64+0x10019affb)
#2 kfun:kotlinx.coroutines.CancellableContinuationImpl.detachChildIfNonResuable#internal CancellableContinuationImpl.kt:488 (newMM.kexe:x86_64+0x10019af32)
#3 kfun:kotlinx.coroutines.CancellableContinuationImpl#cancel(kotlin.Throwable?){}kotlin.Boolean CancellableContinuationImpl.kt:174 (newMM.kexe:x86_64+0x10019623c)
#4 kfun:kotlinx.coroutines.CancellableContinuationImpl#parentCancelled(kotlin.Throwable){} CancellableContinuationImpl.kt:190 (newMM.kexe:x86_64+0x100196420)
#5 kfun:kotlinx.coroutines.ChildContinuation#invoke(kotlin.Throwable?){} JobSupport.kt:1475 (newMM.kexe:x86_64+0x1001cbf2d)
#6 kfun:kotlinx.coroutines.JobSupport.notifyCancelling#internal JobSupport.kt:330 (newMM.kexe:x86_64+0x1001b8f46)
#7 kfun:kotlinx.coroutines.JobSupport.tryMakeCancelling#internal JobSupport.kt:795 (newMM.kexe:x86_64+0x1001c1a21)
#8 kfun:kotlinx.coroutines.JobSupport.makeCancelling#internal JobSupport.kt:732 (newMM.kexe:x86_64+0x1001c0f01)
#9 kfun:kotlinx.coroutines.JobSupport#cancelImpl(kotlin.Any?){}kotlin.Boolean JobSupport.kt:671 (newMM.kexe:x86_64+0x1001bf5b1)
#10 kfun:kotlinx.coroutines.JobSupport#cancelCoroutine(kotlin.Throwable?){}kotlin.Boolean JobSupport.kt:658 (newMM.kexe:x86_64+0x1001bf142)
#11 kfun:kotlinx.coroutines.TimeoutCoroutine.run#internal Timeout.kt:154 (newMM.kexe:x86_64+0x1001d3218)
#12 kfun:kotlinx.coroutines.WorkerDispatcher.DisposableBlock.invoke#internal MultithreadedDispatchers.kt:46 (newMM.kexe:x86_64+0x10030407b)
#13 kfun:kotlinx.coroutines.WorkerDispatcher.DisposableBlock.$<bridge-UNN>invoke(){}#internal MultithreadedDispatchers.kt:42 (newMM.kexe:x86_64+0x100304228)
#14 WorkerLaunchpad Internal.kt:87 (newMM.kexe:x86_64+0x10002b05e)
#15 Worker::processQueueElement(bool) <null>:2 (newMM.kexe:x86_64+0x100e086d1)
#16 (anonymous namespace)::workerRoutine(void*) <null>:2 (newMM.kexe:x86_64+0x100e0784c)
Previous write of size 8 at 0x7b1400020b60 by main thread:
#0 UpdateHeapRef <null>:2 (newMM.kexe:x86_64+0x100dff931)
#1 kfun:kotlinx.coroutines.CancellableContinuationImpl.<set-parentHandle>#internal CancellableContinuationImpl.kt:75 (newMM.kexe:x86_64+0x1001941e1)
#2 kfun:kotlinx.coroutines.CancellableContinuationImpl.installParentHandle#internal CancellableContinuationImpl.kt:312 (newMM.kexe:x86_64+0x10019851b)
#3 kfun:kotlinx.coroutines.CancellableContinuationImpl#initCancellability(){} CancellableContinuationImpl.kt:98 (newMM.kexe:x86_64+0x10019486b)
#4 kfun:kotlinx.coroutines#delay(kotlin.Long){} Delay.kt:16 (newMM.kexe:x86_64+0x1001a63d6)
#5 kfun:kotlinx.coroutines#delay(kotlin.time.Duration){} Delay.kt:136 (newMM.kexe:x86_64+0x1001a6dfb)
#6 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20$lambda$19COROUTINE$618.invokeSuspend#internal WithTimeoutOrNullDurationTest.kt:124 (newMM.kexe:x86_64+0x100554f9b)
#7 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20$lambda$19COROUTINE$618.invoke#internal WithTimeoutOrNullDurationTest.kt:123 (newMM.kexe:x86_64+0x100555397)
#8 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20$lambda$19COROUTINE$618.invoke#internal.1444 WithTimeoutOrNullDurationTest.kt:1 (newMM.kexe:x86_64+0x10055549b)
#9 kfun:kotlinx.coroutines.intrinsics#startUndispatchedOrReturnIgnoreTimeout__at__kotlinx.coroutines.internal.ScopeCoroutine<0:0>(0:1;kotlin.coroutines.SuspendFunction1<0:1,0:0>){0§<kotlin.Any?>;1§<kotlin.Any?>}kotlin.Any? Undispatched.kt:99 (newMM.kexe:x86_64+0x1002d4baa)
#10 kfun:kotlinx.coroutines.setupTimeout#internal Timeout.kt:146 (newMM.kexe:x86_64+0x1001d2d6d)
#11 kfun:kotlinx.coroutines#withTimeout(kotlin.Long;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Timeout.kt:18 (newMM.kexe:x86_64+0x1001d18be)
#12 kfun:kotlinx.coroutines#withTimeout(kotlin.time.Duration;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Timeout.kt:71 (newMM.kexe:x86_64+0x1001d1a0a)
#13 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20COROUTINE$619.invokeSuspend#internal WithTimeoutOrNullDurationTest.kt:123 (newMM.kexe:x86_64+0x1005558f4)
#14 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20COROUTINE$619.invoke#internal WithTimeoutOrNullDurationTest.kt:121 (newMM.kexe:x86_64+0x100555d97)
#15 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20COROUTINE$619.invoke#internal.1446 WithTimeoutOrNullDurationTest.kt:1 (newMM.kexe:x86_64+0x100555e9b)
#16 kfun:kotlinx.coroutines.intrinsics#startUndispatchedOrReturnIgnoreTimeout__at__kotlinx.coroutines.internal.ScopeCoroutine<0:0>(0:1;kotlin.coroutines.SuspendFunction1<0:1,0:0>){0§<kotlin.Any?>;1§<kotlin.Any?>}kotlin.Any? Undispatched.kt:99 (newMM.kexe:x86_64+0x1002d4baa)
#17 kfun:kotlinx.coroutines.setupTimeout#internal Timeout.kt:146 (newMM.kexe:x86_64+0x1001d2d6d)
#18 kfun:kotlinx.coroutines.$withTimeoutOrNullCOROUTINE$2706#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any? Timeout.kt:100 (newMM.kexe:x86_64+0x1001d2506)
#19 kfun:kotlinx.coroutines#withTimeoutOrNull(kotlin.Long;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0? Timeout.kt:95 (newMM.kexe:x86_64+0x1001d2931)
#20 kfun:kotlinx.coroutines#withTimeoutOrNull(kotlin.time.Duration;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0? Timeout.kt:134 (newMM.kexe:x86_64+0x1001d1ee8)
#21 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21COROUTINE$620.invokeSuspend#internal WithTimeoutOrNullDurationTest.kt:121 (newMM.kexe:x86_64+0x100556291)
#22 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#23 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#24 kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long EventLoop.common.kt:284 (newMM.kexe:x86_64+0x1001aad02)
#25 kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal Builders.kt:83 (newMM.kexe:x86_64+0x1002fdf17)
#26 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:56 (newMM.kexe:x86_64+0x1002fd0aa)
#27 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#28 kfun:kotlinx.coroutines.TestBase#runTest$default(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBase.kt:78 (newMM.kexe:x86_64+0x100d98270)
#29 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest#testNestedTimeout(){} WithTimeoutOrNullDurationTest.kt:120 (newMM.kexe:x86_64+0x10054a567)
#30 kfun:kotlinx.coroutines.$WithTimeoutOrNullDurationTest$test$0.$testNestedTimeout$FUNCTION_REFERENCE$392.invoke#internal WithTimeoutOrNullDurationTest.kt:120 (newMM.kexe:x86_64+0x1005638b0)
#31 kfun:kotlinx.coroutines.$WithTimeoutOrNullDurationTest$test$0.$testNestedTimeout$FUNCTION_REFERENCE$392.$<bridge-UNNN>invoke(-1:0){}#internal WithTimeoutOrNullDurationTest.kt:120 (newMM.kexe:x86_64+0x100563bf6)
#32 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#33 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#34 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#35 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#36 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#37 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#38 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#39 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#40 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#41 start <null>:2 (dyld:x86_64+0x551d)
Location is heap block of size 72 at 0x7b1400020b20 allocated by main thread:
#0 calloc <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x534a4)
#1 kotlin::mm::internal::ObjectFactoryStorage<8ul, kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData> >::Node::Create(kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData>&, unsigned long) <null>:2 (newMM.kexe:x86_64+0x100dd5c90)
#2 kotlin::mm::internal::ObjectFactoryStorage<8ul, kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData> >::Producer::Insert(unsigned long) <null>:2 (newMM.kexe:x86_64+0x100dd56b1)
#3 AllocInstance <null>:2 (newMM.kexe:x86_64+0x100dfeaad)
#4 kfun:kotlinx.coroutines#delay(kotlin.Long){} Delay.kt:16 (newMM.kexe:x86_64+0x1001a633c)
#5 kfun:kotlinx.coroutines#delay(kotlin.time.Duration){} Delay.kt:136 (newMM.kexe:x86_64+0x1001a6dfb)
#6 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20$lambda$19COROUTINE$618.invokeSuspend#internal WithTimeoutOrNullDurationTest.kt:124 (newMM.kexe:x86_64+0x100554f9b)
#7 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20$lambda$19COROUTINE$618.invoke#internal WithTimeoutOrNullDurationTest.kt:123 (newMM.kexe:x86_64+0x100555397)
#8 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20$lambda$19COROUTINE$618.invoke#internal.1444 WithTimeoutOrNullDurationTest.kt:1 (newMM.kexe:x86_64+0x10055549b)
#9 kfun:kotlinx.coroutines.intrinsics#startUndispatchedOrReturnIgnoreTimeout__at__kotlinx.coroutines.internal.ScopeCoroutine<0:0>(0:1;kotlin.coroutines.SuspendFunction1<0:1,0:0>){0§<kotlin.Any?>;1§<kotlin.Any?>}kotlin.Any? Undispatched.kt:99 (newMM.kexe:x86_64+0x1002d4baa)
#10 kfun:kotlinx.coroutines.setupTimeout#internal Timeout.kt:146 (newMM.kexe:x86_64+0x1001d2d6d)
#11 kfun:kotlinx.coroutines#withTimeout(kotlin.Long;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Timeout.kt:18 (newMM.kexe:x86_64+0x1001d18be)
#12 kfun:kotlinx.coroutines#withTimeout(kotlin.time.Duration;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Timeout.kt:71 (newMM.kexe:x86_64+0x1001d1a0a)
#13 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20COROUTINE$619.invokeSuspend#internal WithTimeoutOrNullDurationTest.kt:123 (newMM.kexe:x86_64+0x1005558f4)
#14 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20COROUTINE$619.invoke#internal WithTimeoutOrNullDurationTest.kt:121 (newMM.kexe:x86_64+0x100555d97)
#15 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21$lambda$20COROUTINE$619.invoke#internal.1446 WithTimeoutOrNullDurationTest.kt:1 (newMM.kexe:x86_64+0x100555e9b)
#16 kfun:kotlinx.coroutines.intrinsics#startUndispatchedOrReturnIgnoreTimeout__at__kotlinx.coroutines.internal.ScopeCoroutine<0:0>(0:1;kotlin.coroutines.SuspendFunction1<0:1,0:0>){0§<kotlin.Any?>;1§<kotlin.Any?>}kotlin.Any? Undispatched.kt:99 (newMM.kexe:x86_64+0x1002d4baa)
#17 kfun:kotlinx.coroutines.setupTimeout#internal Timeout.kt:146 (newMM.kexe:x86_64+0x1001d2d6d)
#18 kfun:kotlinx.coroutines.$withTimeoutOrNullCOROUTINE$2706#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any? Timeout.kt:100 (newMM.kexe:x86_64+0x1001d2506)
#19 kfun:kotlinx.coroutines#withTimeoutOrNull(kotlin.Long;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0? Timeout.kt:95 (newMM.kexe:x86_64+0x1001d2931)
#20 kfun:kotlinx.coroutines#withTimeoutOrNull(kotlin.time.Duration;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0? Timeout.kt:134 (newMM.kexe:x86_64+0x1001d1ee8)
#21 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest.$testNestedTimeout$lambda$21COROUTINE$620.invokeSuspend#internal WithTimeoutOrNullDurationTest.kt:121 (newMM.kexe:x86_64+0x100556291)
#22 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#23 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#24 kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long EventLoop.common.kt:284 (newMM.kexe:x86_64+0x1001aad02)
#25 kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal Builders.kt:83 (newMM.kexe:x86_64+0x1002fdf17)
#26 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:56 (newMM.kexe:x86_64+0x1002fd0aa)
#27 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#28 kfun:kotlinx.coroutines.TestBase#runTest$default(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBase.kt:78 (newMM.kexe:x86_64+0x100d98270)
#29 kfun:kotlinx.coroutines.WithTimeoutOrNullDurationTest#testNestedTimeout(){} WithTimeoutOrNullDurationTest.kt:120 (newMM.kexe:x86_64+0x10054a567)
#30 kfun:kotlinx.coroutines.$WithTimeoutOrNullDurationTest$test$0.$testNestedTimeout$FUNCTION_REFERENCE$392.invoke#internal WithTimeoutOrNullDurationTest.kt:120 (newMM.kexe:x86_64+0x1005638b0)
#31 kfun:kotlinx.coroutines.$WithTimeoutOrNullDurationTest$test$0.$testNestedTimeout$FUNCTION_REFERENCE$392.$<bridge-UNNN>invoke(-1:0){}#internal WithTimeoutOrNullDurationTest.kt:120 (newMM.kexe:x86_64+0x100563bf6)
#32 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#33 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#34 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#35 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#36 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#37 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#38 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#39 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#40 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#41 start <null>:2 (dyld:x86_64+0x551d)
Thread T3 (tid=8194867, running) created by main thread at:
#0 pthread_create <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2bb6f)
#1 Kotlin_Worker_startInternal <null>:2 (newMM.kexe:x86_64+0x100e0cfe4)
#2 kfun:kotlin.native.concurrent.Worker.Companion#start(kotlin.Boolean;kotlin.String?){}kotlin.native.concurrent.Worker Worker.kt:43 (newMM.kexe:x86_64+0x10002ee13)
#3 kfun:kotlin.native.concurrent.Worker.Companion#start$default(kotlin.Boolean;kotlin.String?;kotlin.Int){}kotlin.native.concurrent.Worker Worker.kt:42 (newMM.kexe:x86_64+0x10002ef74)
#4 kfun:kotlinx.coroutines.WorkerDispatcher#<init>(kotlin.String){} MultithreadedDispatchers.kt:25 (newMM.kexe:x86_64+0x10030329a)
#5 kfun:kotlinx.coroutines.DefaultExecutor#<init>(){} CoroutineContext.kt:13 (newMM.kexe:x86_64+0x1002ff65d)
#6 kotlin::mm::InitSingleton(kotlin::mm::ThreadData*, ObjHeader**, TypeInfo const*, void (*)(ObjHeader*), ObjHeader**) <null>:2 (newMM.kexe:x86_64+0x100dff504)
#7 InitSingleton <null>:2 (newMM.kexe:x86_64+0x100dfef35)
#8 kfun:kotlinx.coroutines.$init_global#internal.188 CoroutineContext.kt:44 (newMM.kexe:x86_64+0x1002fe5dd)
#9 CallInitGlobalPossiblyLock <null>:2 (newMM.kexe:x86_64+0x100e1e6e9)
#10 kfun:kotlinx.coroutines#newCoroutineContext__at__kotlinx.coroutines.CoroutineScope(kotlin.coroutines.CoroutineContext){}kotlin.coroutines.CoroutineContext CoroutineContext.kt:1 (newMM.kexe:x86_64+0x1002fe8e7)
#11 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:46 (newMM.kexe:x86_64+0x1002fcf94)
#12 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#13 kfun:kotlinx.coroutines.TestBase#runTest$default(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBase.kt:78 (newMM.kexe:x86_64+0x100d98270)
#14 kfun:kotlinx.coroutines.AbstractCoroutineTest#testNotifications(){} AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x10030e3a3)
#15 kfun:kotlinx.coroutines.$AbstractCoroutineTest$test$0.$testNotifications$FUNCTION_REFERENCE$4.invoke#internal AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x100311740)
#16 kfun:kotlinx.coroutines.$AbstractCoroutineTest$test$0.$testNotifications$FUNCTION_REFERENCE$4.$<bridge-UNNN>invoke(-1:0){}#internal AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x100311a86)
#17 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#18 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#19 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#20 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#21 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#22 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#23 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#24 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#25 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#26 start <null>:2 (dyld:x86_64+0x551d)
SUMMARY: ThreadSanitizer: data race CancellableContinuationImpl.kt:75 in kfun:kotlinx.coroutines.CancellableContinuationImpl.<get-parentHandle>#internal
JobNode.getNode/setJob
WARNING: ThreadSanitizer: data race (pid=88874)
Read of size 8 at 0x7b100012dfb0 by thread T3:
#0 kfun:kotlinx.coroutines.JobNode#<get-job>(){}kotlinx.coroutines.JobSupport JobSupport.kt:1355 (newMM.kexe:x86_64+0x1001cb3cd)
#1 kfun:kotlinx.coroutines.JobNode#dispose(){} JobSupport.kt:1358 (newMM.kexe:x86_64+0x1001cb6a7)
#2 kfun:kotlinx.coroutines.CancellableContinuationImpl#detachChild(){} CancellableContinuationImpl.kt:496 (newMM.kexe:x86_64+0x10019b10a)
#3 kfun:kotlinx.coroutines.CancellableContinuationImpl.detachChildIfNonResuable#internal CancellableContinuationImpl.kt:488 (newMM.kexe:x86_64+0x10019af32)
#4 kfun:kotlinx.coroutines.CancellableContinuationImpl.tryResumeImpl#internal CancellableContinuationImpl.kt:460 (newMM.kexe:x86_64+0x10019ab62)
#5 kfun:kotlinx.coroutines.CancellableContinuationImpl#tryResume(1:0;kotlin.Any?;kotlin.Function1<kotlin.Throwable,kotlin.Unit>?){}kotlin.Any? CancellableContinuationImpl.kt:505 (newMM.kexe:x86_64+0x10019b3c6)
#6 kfun:kotlinx.coroutines.channels.AbstractChannel.ReceiveElement.tryResumeReceive#internal AbstractChannel.kt:901 (newMM.kexe:x86_64+0x1001dc8de)
#7 kfun:kotlinx.coroutines.channels.ArrayChannel#offerInternal(1:0){}kotlin.Any ArrayChannel.kt:58 (newMM.kexe:x86_64+0x1001f7b3a)
#8 kfun:kotlinx.coroutines.channels.AbstractSendChannel#send(1:0){} AbstractChannel.kt:134 (newMM.kexe:x86_64+0x1001e30a4)
#9 kfun:kotlinx.coroutines.channels.ChannelCoroutine#send(1:0){} ChannelCoroutine.kt:1 (newMM.kexe:x86_64+0x10020b0e3)
#10 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$collector$lambda$79COROUTINE$952.invokeSuspend#internal FlowInvariantsTest.kt:266 (newMM.kexe:x86_64+0x1006bf746)
#11 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$collector$lambda$79COROUTINE$952.invoke#internal FlowInvariantsTest.kt:265 (newMM.kexe:x86_64+0x1006bfb47)
#12 kfun:kotlinx.coroutines.flow.ChannelFlowBuilder.collectTo#internal Builders.kt:322 (newMM.kexe:x86_64+0x10021e372)
#13 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$<get-collectToFun>$lambda$0COROUTINE$2729.invokeSuspend#internal ChannelFlow.kt:60 (newMM.kexe:x86_64+0x100240b57)
#14 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#15 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#16 kfun:kotlinx.coroutines.WorkerDispatcher.dispatch$lambda$0#internal MultithreadedDispatchers.kt:28 (newMM.kexe:x86_64+0x100303b5b)
#17 kfun:kotlinx.coroutines.WorkerDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1631.invoke#internal MultithreadedDispatchers.kt:28 (newMM.kexe:x86_64+0x1003042c9)
#18 kfun:kotlinx.coroutines.WorkerDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1631.$<bridge-UNN>invoke(){}#internal MultithreadedDispatchers.kt:28 (newMM.kexe:x86_64+0x1003043d8)
#19 WorkerLaunchpad Internal.kt:87 (newMM.kexe:x86_64+0x10002b05e)
#20 Worker::processQueueElement(bool) <null>:2 (newMM.kexe:x86_64+0x100e086d1)
#21 (anonymous namespace)::workerRoutine(void*) <null>:2 (newMM.kexe:x86_64+0x100e0784c)
Previous write of size 8 at 0x7b100012dfb0 by main thread:
#0 UpdateHeapRef <null>:2 (newMM.kexe:x86_64+0x100dff931)
#1 kfun:kotlinx.coroutines.JobNode#<set-job>(kotlinx.coroutines.JobSupport){} JobSupport.kt:1355 (newMM.kexe:x86_64+0x1001cb511)
#2 kfun:kotlinx.coroutines.JobSupport.makeNode#internal JobSupport.kt:519 (newMM.kexe:x86_64+0x1001bc85f)
#3 kfun:kotlinx.coroutines.JobSupport#invokeOnCompletion(kotlin.Boolean;kotlin.Boolean;kotlin.Function1<kotlin.Throwable?,kotlin.Unit>){}kotlinx.coroutines.DisposableHandle JobSupport.kt:458 (newMM.kexe:x86_64+0x1001bb908)
#4 kfun:kotlinx.coroutines.Job#invokeOnCompletion$default(kotlin.Boolean;kotlin.Boolean;kotlin.Function1<kotlin.Throwable?,kotlin.Unit>;kotlin.Int){}kotlinx.coroutines.DisposableHandle Job.kt:341 (newMM.kexe:x86_64+0x1001b0531)
#5 kfun:kotlinx.coroutines.CancellableContinuationImpl.installParentHandle#internal CancellableContinuationImpl.kt:308 (newMM.kexe:x86_64+0x1001984e4)
#6 kfun:kotlinx.coroutines.CancellableContinuationImpl#getResult(){}kotlin.Any? CancellableContinuationImpl.kt:271 (newMM.kexe:x86_64+0x100198111)
#7 kfun:kotlinx.coroutines.channels.AbstractChannel.receiveSuspend#internal AbstractChannel.kt:17 (newMM.kexe:x86_64+0x1001d62b0)
#8 kfun:kotlinx.coroutines.channels.AbstractChannel#receiveCatching(){}kotlinx.coroutines.channels.ChannelResult<1:0> AbstractChannel.kt:633 (newMM.kexe:x86_64+0x1001d6ceb)
#9 kfun:kotlinx.coroutines.channels.ChannelCoroutine#receiveCatching(){}kotlinx.coroutines.channels.ChannelResult<1:0> ChannelCoroutine.kt:1 (newMM.kexe:x86_64+0x10020ad48)
#10 kfun:kotlinx.coroutines.flow.$emitAllImplCOROUTINE$2720.invokeSuspend#internal Channels.kt:51 (newMM.kexe:x86_64+0x100224182)
#11 kfun:kotlinx.coroutines.flow.emitAllImpl#internal Channels.kt:32 (newMM.kexe:x86_64+0x100224c1f)
#12 kfun:kotlinx.coroutines.flow#emitAll__at__kotlinx.coroutines.flow.FlowCollector<0:0>(kotlinx.coroutines.channels.ReceiveChannel<0:0>){0§<kotlin.Any?>} Channels.kt:30 (newMM.kexe:x86_64+0x100221fc7)
#13 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$collect$lambda$1COROUTINE$2730.invokeSuspend#internal ChannelFlow.kt:123 (newMM.kexe:x86_64+0x100241515)
#14 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$collect$lambda$1COROUTINE$2730.invoke#internal ChannelFlow.kt:122 (newMM.kexe:x86_64+0x100241997)
#15 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$collect$lambda$1COROUTINE$2730.invoke#internal.65 ChannelFlow.kt:1 (newMM.kexe:x86_64+0x100241a9b)
#16 kfun:kotlinx.coroutines.intrinsics#startUndispatchedOrReturn__at__kotlinx.coroutines.internal.ScopeCoroutine<0:0>(0:1;kotlin.coroutines.SuspendFunction1<0:1,0:0>){0§<kotlin.Any?>;1§<kotlin.Any?>}kotlin.Any? Undispatched.kt:88 (newMM.kexe:x86_64+0x1002d3079)
#17 kfun:kotlinx.coroutines#coroutineScope(kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 CoroutineScope.kt:15 (newMM.kexe:x86_64+0x1001a45d0)
#18 kfun:kotlinx.coroutines.flow.internal.ChannelFlow#collect(kotlinx.coroutines.flow.FlowCollector<1:0>){} ChannelFlow.kt:122 (newMM.kexe:x86_64+0x10023fdc7)
#19 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.object-2.$collectCOROUTINE$896.invokeSuspend#internal FlowInvariantsTest.kt:129 (newMM.kexe:x86_64+0x1006c1a6f)
#20 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.object-2.collect#internal FlowInvariantsTest.kt:125 (newMM.kexe:x86_64+0x1006c1d35)
#21 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$collectorCOROUTINE$953.invokeSuspend#internal FlowInvariantsTest.kt:268 (newMM.kexe:x86_64+0x1006c050d)
#22 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.emptyContextTest$collector#internal FlowInvariantsTest.kt:263 (newMM.kexe:x86_64+0x1006c08b5)
#23 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$lambda$81COROUTINE$954.invokeSuspend#internal FlowInvariantsTest.kt:275 (newMM.kexe:x86_64+0x1006c0c61)
#24 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$lambda$81COROUTINE$954.invoke#internal FlowInvariantsTest.kt:275 (newMM.kexe:x86_64+0x1006c111d)
#25 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$lambda$81COROUTINE$954.invoke#internal.2117 FlowInvariantsTest.kt:1 (newMM.kexe:x86_64+0x1006c11fd)
#26 kfun:kotlinx.coroutines.intrinsics#startCoroutineUnintercepted__at__kotlin.coroutines.SuspendFunction0<0:0>(kotlin.coroutines.Continuation<0:0>){0§<kotlin.Any?>} Undispatched.kt:18 (newMM.kexe:x86_64+0x1002d2962)
#27 kfun:kotlinx.coroutines.$withEmptyContextCOROUTINE$341#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any? EmptyContext.kt:10 (newMM.kexe:x86_64+0x100461de1)
#28 kfun:kotlinx.coroutines#withEmptyContext(kotlin.coroutines.SuspendFunction0<0:0>){0§<kotlin.Any?>}0:0 EmptyContext.kt:10 (newMM.kexe:x86_64+0x1004620c7)
#29 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTestCOROUTINE$897.invokeSuspend#internal FlowInvariantsTest.kt:275 (newMM.kexe:x86_64+0x100695560)
#30 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.emptyContextTest#internal FlowInvariantsTest.kt:262 (newMM.kexe:x86_64+0x100695905)
#31 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$testEmptyCoroutineContextMap$lambda$62COROUTINE$939.invokeSuspend#internal FlowInvariantsTest.kt:196 (newMM.kexe:x86_64+0x1006b68b6)
#32 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#33 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#34 kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long EventLoop.common.kt:284 (newMM.kexe:x86_64+0x1001aad02)
#35 kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal Builders.kt:83 (newMM.kexe:x86_64+0x1002fdf17)
#36 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:56 (newMM.kexe:x86_64+0x1002fd0aa)
#37 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#38 kfun:kotlinx.coroutines.TestBase#runTest$default(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBase.kt:78 (newMM.kexe:x86_64+0x100d98270)
#39 kfun:kotlinx.coroutines.flow.FlowInvariantsTest#testEmptyCoroutineContextMap(){} FlowInvariantsTest.kt:195 (newMM.kexe:x86_64+0x100694da3)
#40 kfun:kotlinx.coroutines.flow.$FlowInvariantsTest$test$0.$testEmptyCoroutineContextMap$FUNCTION_REFERENCE$614.invoke#internal FlowInvariantsTest.kt:195 (newMM.kexe:x86_64+0x1006c7d30)
#41 kfun:kotlinx.coroutines.flow.$FlowInvariantsTest$test$0.$testEmptyCoroutineContextMap$FUNCTION_REFERENCE$614.$<bridge-UNNN>invoke(-1:0){}#internal FlowInvariantsTest.kt:195 (newMM.kexe:x86_64+0x1006c8076)
#42 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#43 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#44 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#45 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#46 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#47 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#48 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#49 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#50 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#51 start <null>:2 (dyld:x86_64+0x551d)
Location is heap block of size 64 at 0x7b100012df80 allocated by main thread:
#0 calloc <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x534a4)
#1 kotlin::mm::internal::ObjectFactoryStorage<8ul, kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData> >::Node::Create(kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData>&, unsigned long) <null>:2 (newMM.kexe:x86_64+0x100dd5c90)
#2 kotlin::mm::internal::ObjectFactoryStorage<8ul, kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData> >::Producer::Insert(unsigned long) <null>:2 (newMM.kexe:x86_64+0x100dd56b1)
#3 AllocInstance <null>:2 (newMM.kexe:x86_64+0x100dfeaad)
#4 kfun:kotlinx.coroutines.CancellableContinuationImpl.installParentHandle#internal CancellableContinuationImpl.kt:310 (newMM.kexe:x86_64+0x10019847c)
#5 kfun:kotlinx.coroutines.CancellableContinuationImpl#getResult(){}kotlin.Any? CancellableContinuationImpl.kt:271 (newMM.kexe:x86_64+0x100198111)
#6 kfun:kotlinx.coroutines.channels.AbstractChannel.receiveSuspend#internal AbstractChannel.kt:17 (newMM.kexe:x86_64+0x1001d62b0)
#7 kfun:kotlinx.coroutines.channels.AbstractChannel#receiveCatching(){}kotlinx.coroutines.channels.ChannelResult<1:0> AbstractChannel.kt:633 (newMM.kexe:x86_64+0x1001d6ceb)
#8 kfun:kotlinx.coroutines.channels.ChannelCoroutine#receiveCatching(){}kotlinx.coroutines.channels.ChannelResult<1:0> ChannelCoroutine.kt:1 (newMM.kexe:x86_64+0x10020ad48)
#9 kfun:kotlinx.coroutines.flow.$emitAllImplCOROUTINE$2720.invokeSuspend#internal Channels.kt:51 (newMM.kexe:x86_64+0x100224182)
#10 kfun:kotlinx.coroutines.flow.emitAllImpl#internal Channels.kt:32 (newMM.kexe:x86_64+0x100224c1f)
#11 kfun:kotlinx.coroutines.flow#emitAll__at__kotlinx.coroutines.flow.FlowCollector<0:0>(kotlinx.coroutines.channels.ReceiveChannel<0:0>){0§<kotlin.Any?>} Channels.kt:30 (newMM.kexe:x86_64+0x100221fc7)
#12 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$collect$lambda$1COROUTINE$2730.invokeSuspend#internal ChannelFlow.kt:123 (newMM.kexe:x86_64+0x100241515)
#13 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$collect$lambda$1COROUTINE$2730.invoke#internal ChannelFlow.kt:122 (newMM.kexe:x86_64+0x100241997)
#14 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$collect$lambda$1COROUTINE$2730.invoke#internal.65 ChannelFlow.kt:1 (newMM.kexe:x86_64+0x100241a9b)
#15 kfun:kotlinx.coroutines.intrinsics#startUndispatchedOrReturn__at__kotlinx.coroutines.internal.ScopeCoroutine<0:0>(0:1;kotlin.coroutines.SuspendFunction1<0:1,0:0>){0§<kotlin.Any?>;1§<kotlin.Any?>}kotlin.Any? Undispatched.kt:88 (newMM.kexe:x86_64+0x1002d3079)
#16 kfun:kotlinx.coroutines#coroutineScope(kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 CoroutineScope.kt:15 (newMM.kexe:x86_64+0x1001a45d0)
#17 kfun:kotlinx.coroutines.flow.internal.ChannelFlow#collect(kotlinx.coroutines.flow.FlowCollector<1:0>){} ChannelFlow.kt:122 (newMM.kexe:x86_64+0x10023fdc7)
#18 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.object-2.$collectCOROUTINE$896.invokeSuspend#internal FlowInvariantsTest.kt:129 (newMM.kexe:x86_64+0x1006c1a6f)
#19 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.object-2.collect#internal FlowInvariantsTest.kt:125 (newMM.kexe:x86_64+0x1006c1d35)
#20 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$collectorCOROUTINE$953.invokeSuspend#internal FlowInvariantsTest.kt:268 (newMM.kexe:x86_64+0x1006c050d)
#21 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.emptyContextTest$collector#internal FlowInvariantsTest.kt:263 (newMM.kexe:x86_64+0x1006c08b5)
#22 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$lambda$81COROUTINE$954.invokeSuspend#internal FlowInvariantsTest.kt:275 (newMM.kexe:x86_64+0x1006c0c61)
#23 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$lambda$81COROUTINE$954.invoke#internal FlowInvariantsTest.kt:275 (newMM.kexe:x86_64+0x1006c111d)
#24 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$lambda$81COROUTINE$954.invoke#internal.2117 FlowInvariantsTest.kt:1 (newMM.kexe:x86_64+0x1006c11fd)
#25 kfun:kotlinx.coroutines.intrinsics#startCoroutineUnintercepted__at__kotlin.coroutines.SuspendFunction0<0:0>(kotlin.coroutines.Continuation<0:0>){0§<kotlin.Any?>} Undispatched.kt:18 (newMM.kexe:x86_64+0x1002d2962)
#26 kfun:kotlinx.coroutines.$withEmptyContextCOROUTINE$341#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any? EmptyContext.kt:10 (newMM.kexe:x86_64+0x100461de1)
#27 kfun:kotlinx.coroutines#withEmptyContext(kotlin.coroutines.SuspendFunction0<0:0>){0§<kotlin.Any?>}0:0 EmptyContext.kt:10 (newMM.kexe:x86_64+0x1004620c7)
#28 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTestCOROUTINE$897.invokeSuspend#internal FlowInvariantsTest.kt:275 (newMM.kexe:x86_64+0x100695560)
#29 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.emptyContextTest#internal FlowInvariantsTest.kt:262 (newMM.kexe:x86_64+0x100695905)
#30 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$testEmptyCoroutineContextMap$lambda$62COROUTINE$939.invokeSuspend#internal FlowInvariantsTest.kt:196 (newMM.kexe:x86_64+0x1006b68b6)
#31 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#32 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#33 kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long EventLoop.common.kt:284 (newMM.kexe:x86_64+0x1001aad02)
#34 kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal Builders.kt:83 (newMM.kexe:x86_64+0x1002fdf17)
#35 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:56 (newMM.kexe:x86_64+0x1002fd0aa)
#36 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#37 kfun:kotlinx.coroutines.TestBase#runTest$default(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBase.kt:78 (newMM.kexe:x86_64+0x100d98270)
#38 kfun:kotlinx.coroutines.flow.FlowInvariantsTest#testEmptyCoroutineContextMap(){} FlowInvariantsTest.kt:195 (newMM.kexe:x86_64+0x100694da3)
#39 kfun:kotlinx.coroutines.flow.$FlowInvariantsTest$test$0.$testEmptyCoroutineContextMap$FUNCTION_REFERENCE$614.invoke#internal FlowInvariantsTest.kt:195 (newMM.kexe:x86_64+0x1006c7d30)
#40 kfun:kotlinx.coroutines.flow.$FlowInvariantsTest$test$0.$testEmptyCoroutineContextMap$FUNCTION_REFERENCE$614.$<bridge-UNNN>invoke(-1:0){}#internal FlowInvariantsTest.kt:195 (newMM.kexe:x86_64+0x1006c8076)
#41 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#42 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#43 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#44 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#45 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#46 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#47 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#48 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#49 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#50 start <null>:2 (dyld:x86_64+0x551d)
Thread T3 (tid=8194867, running) created by main thread at:
#0 pthread_create <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2bb6f)
#1 Kotlin_Worker_startInternal <null>:2 (newMM.kexe:x86_64+0x100e0cfe4)
#2 kfun:kotlin.native.concurrent.Worker.Companion#start(kotlin.Boolean;kotlin.String?){}kotlin.native.concurrent.Worker Worker.kt:43 (newMM.kexe:x86_64+0x10002ee13)
#3 kfun:kotlin.native.concurrent.Worker.Companion#start$default(kotlin.Boolean;kotlin.String?;kotlin.Int){}kotlin.native.concurrent.Worker Worker.kt:42 (newMM.kexe:x86_64+0x10002ef74)
#4 kfun:kotlinx.coroutines.WorkerDispatcher#<init>(kotlin.String){} MultithreadedDispatchers.kt:25 (newMM.kexe:x86_64+0x10030329a)
#5 kfun:kotlinx.coroutines.DefaultExecutor#<init>(){} CoroutineContext.kt:13 (newMM.kexe:x86_64+0x1002ff65d)
#6 kotlin::mm::InitSingleton(kotlin::mm::ThreadData*, ObjHeader**, TypeInfo const*, void (*)(ObjHeader*), ObjHeader**) <null>:2 (newMM.kexe:x86_64+0x100dff504)
#7 InitSingleton <null>:2 (newMM.kexe:x86_64+0x100dfef35)
#8 kfun:kotlinx.coroutines.$init_global#internal.188 CoroutineContext.kt:44 (newMM.kexe:x86_64+0x1002fe5dd)
#9 CallInitGlobalPossiblyLock <null>:2 (newMM.kexe:x86_64+0x100e1e6e9)
#10 kfun:kotlinx.coroutines#newCoroutineContext__at__kotlinx.coroutines.CoroutineScope(kotlin.coroutines.CoroutineContext){}kotlin.coroutines.CoroutineContext CoroutineContext.kt:1 (newMM.kexe:x86_64+0x1002fe8e7)
#11 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:46 (newMM.kexe:x86_64+0x1002fcf94)
#12 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#13 kfun:kotlinx.coroutines.TestBase#runTest$default(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBase.kt:78 (newMM.kexe:x86_64+0x100d98270)
#14 kfun:kotlinx.coroutines.AbstractCoroutineTest#testNotifications(){} AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x10030e3a3)
#15 kfun:kotlinx.coroutines.$AbstractCoroutineTest$test$0.$testNotifications$FUNCTION_REFERENCE$4.invoke#internal AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x100311740)
#16 kfun:kotlinx.coroutines.$AbstractCoroutineTest$test$0.$testNotifications$FUNCTION_REFERENCE$4.$<bridge-UNNN>invoke(-1:0){}#internal AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x100311a86)
#17 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#18 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#19 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#20 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#21 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#22 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#23 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#24 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#25 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#26 start <null>:2 (dyld:x86_64+0x551d)
SUMMARY: ThreadSanitizer: data race JobSupport.kt:1355 in kfun:kotlinx.coroutines.JobNode#<get-job>(){}kotlinx.coroutines.JobSupport
kfun:kotlinx.atomicfu.locks.MutexPool#release
Write of size 8 at 0x7b60000107e8 by main thread:
#0 kfun:kotlinx.atomicfu.locks.MutexPool#release(kotlinx.cinterop.CPointer<interop.mutex_node>){} Synchronized.kt:204 (newMM.kexe:x86_64+0x1001875df)
#1 kfun:kotlinx.atomicfu.locks.SynchronizedObject#lock(){} Synchronized.kt:43 (newMM.kexe:x86_64+0x100183337)
#2 kfun:kotlinx.coroutines.internal.LimitedDispatcher.tryAllocateWorker#internal LimitedDispatcher.kt:92 (newMM.kexe:x86_64+0x1002c4a5a)
#3 kfun:kotlinx.coroutines.internal.LimitedDispatcher#dispatch(kotlin.coroutines.CoroutineContext;kotlinx.coroutines.Runnable){} LimitedDispatcher.kt:66 (newMM.kexe:x86_64+0x1002c46b0)
#4 kfun:kotlinx.coroutines.internal#resumeCancellableWith__at__kotlin.coroutines.Continuation<0:0>(kotlin.Result<0:0>;kotlin.Function1<kotlin.Throwable,kotlin.Unit>?){0§<kotlin.Any?>} DispatchedContinuation.kt:282 (newMM.kexe:x86_64+0x1002ba226)
#5 kfun:kotlinx.coroutines.intrinsics#startCoroutineCancellable__at__kotlin.coroutines.SuspendFunction1<0:0,0:1>(0:0;kotlin.coroutines.Continuation<0:1>;kotlin.Function1<kotlin.Throwable,kotlin.Unit>?){0§<kotlin.Any?>;1§<kotlin.Any?>} Cancellable.kt:29 (newMM.kexe:x86_64+0x1002d18f4)
#6 kfun:kotlinx.coroutines.intrinsics#startCoroutineCancellable$default__at__kotlin.coroutines.SuspendFunction1<0:0,0:1>(0:0;kotlin.coroutines.Continuation<0:1>;kotlin.Function1<kotlin.Throwable,kotlin.Unit>?;kotlin.Int){0§<kotlin.Any?>;1§<kotlin.Any?>} Cancellable.kt:25 (newMM.kexe:x86_64+0x1002d1b34)
#7 kfun:kotlinx.coroutines.CoroutineStart#invoke(kotlin.coroutines.SuspendFunction1<0:0,0:1>;0:0;kotlin.coroutines.Continuation<0:1>){0§<kotlin.Any?>;1§<kotlin.Any?>} CoroutineStart.kt:110 (newMM.kexe:x86_64+0x1001a5860)
#8 kfun:kotlinx.coroutines.AbstractCoroutine#start(kotlinx.coroutines.CoroutineStart;0:0;kotlin.coroutines.SuspendFunction1<0:0,1:0>){0§<kotlin.Any?>} AbstractCoroutine.kt:126 (newMM.kexe:x86_64+0x100189378)
#9 kfun:kotlinx.coroutines#launch__at__kotlinx.coroutines.CoroutineScope(kotlin.coroutines.CoroutineContext;kotlinx.coroutines.CoroutineStart;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){}kotlinx.coroutines.Job Builders.common.kt:56 (newMM.kexe:x86_64+0x10018f564)
#10 kfun:kotlinx.coroutines#launch$default__at__kotlinx.coroutines.CoroutineScope(kotlin.coroutines.CoroutineContext?;kotlinx.coroutines.CoroutineStart?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){}kotlinx.coroutines.Job Builders.common.kt:47 (newMM.kexe:x86_64+0x10018f858)
#11 kfun:kotlinx.coroutines.LimitedParallelismConcurrentTest.$testLimitedExecutor$lambda$2$lambda$1COROUTINE$2556.invokeSuspend#internal LimitedParallelismConcurrentTest.kt:42 (newMM.kexe:x86_64+0x100d1559c)
#12 kfun:kotlinx.coroutines.LimitedParallelismConcurrentTest.$testLimitedExecutor$lambda$2$lambda$1COROUTINE$2556.invoke#internal LimitedParallelismConcurrentTest.kt:41 (newMM.kexe:x86_64+0x100d15967)
#13 kfun:kotlinx.coroutines.LimitedParallelismConcurrentTest.$testLimitedExecutor$lambda$2$lambda$1COROUTINE$2556.invoke#internal.5123 LimitedParallelismConcurrentTest.kt:1 (newMM.kexe:x86_64+0x100d15a6b)
#14 kfun:kotlinx.coroutines.intrinsics#startUndispatchedOrReturn__at__kotlinx.coroutines.internal.ScopeCoroutine<0:0>(0:1;kotlin.coroutines.SuspendFunction1<0:1,0:0>){0§<kotlin.Any?>;1§<kotlin.Any?>}kotlin.Any? Undispatched.kt:88 (newMM.kexe:x86_64+0x1002d3079)
#15 kfun:kotlinx.coroutines#coroutineScope(kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 CoroutineScope.kt:15 (newMM.kexe:x86_64+0x1001a45d0)
#16 kfun:kotlinx.coroutines.LimitedParallelismConcurrentTest.$testLimitedExecutor$lambda$2COROUTINE$2557.invokeSuspend#internal LimitedParallelismConcurrentTest.kt:29 (newMM.kexe:x86_64+0x100d16258)
#17 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#18 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#19 kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long EventLoop.common.kt:284 (newMM.kexe:x86_64+0x1001aad02)
#20 kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal Builders.kt:83 (newMM.kexe:x86_64+0x1002fdf17)
#21 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:56 (newMM.kexe:x86_64+0x1002fd0aa)
#22 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#23 kfun:kotlinx.coroutines#runMtTest__at__kotlinx.coroutines.TestBase(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBaseExtension.kt:18 (newMM.kexe:x86_64+0x100d99183)
#24 kfun:kotlinx.coroutines#runMtTest$default__at__kotlinx.coroutines.TestBase(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBaseExtension.kt:12 (newMM.kexe:x86_64+0x100d99360)
#25 kfun:kotlinx.coroutines.LimitedParallelismConcurrentTest#testLimitedExecutor(){} LimitedParallelismConcurrentTest.kt:26 (newMM.kexe:x86_64+0x100d149a3)
#26 kfun:kotlinx.coroutines.$LimitedParallelismConcurrentTest$test$0.$testLimitedExecutor$FUNCTION_REFERENCE$1494.invoke#internal LimitedParallelismConcurrentTest.kt:26 (newMM.kexe:x86_64+0x100d18bf0)
#27 kfun:kotlinx.coroutines.$LimitedParallelismConcurrentTest$test$0.$testLimitedExecutor$FUNCTION_REFERENCE$1494.$<bridge-UNNN>invoke(-1:0){}#internal LimitedParallelismConcurrentTest.kt:26 (newMM.kexe:x86_64+0x100d18f36)
#28 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#29 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#30 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#31 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#32 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#33 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#34 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#35 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#36 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#37 start <null>:2 (dyld:x86_64+0x551d)
Previous read of size 8 at 0x7b60000107e8 by thread T15:
#0 kfun:kotlinx.atomicfu.locks.MutexPool.pop#internal Synchronized.kt:215 (newMM.kexe:x86_64+0x100187a38)
#1 kfun:kotlinx.atomicfu.locks.MutexPool#allocate(){}kotlinx.cinterop.CPointer<interop.mutex_node> Synchronized.kt:199 (newMM.kexe:x86_64+0x100187394)
#2 kfun:kotlinx.atomicfu.locks.SynchronizedObject#lock(){} Synchronized.kt:32 (newMM.kexe:x86_64+0x10018311d)
#3 kfun:kotlinx.coroutines.internal.LimitedDispatcher#run(){} LimitedDispatcher.kt:56 (newMM.kexe:x86_64+0x1002c405d)
#4 kfun:kotlinx.coroutines.MultiWorkerDispatcher.$workerRunLoop$lambda$1COROUTINE$2871.invokeSuspend#internal MultithreadedDispatchers.kt:80 (newMM.kexe:x86_64+0x100305b92)
#5 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#6 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#7 kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long EventLoop.common.kt:284 (newMM.kexe:x86_64+0x1001aad02)
#8 kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal Builders.kt:83 (newMM.kexe:x86_64+0x1002fdf17)
#9 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:56 (newMM.kexe:x86_64+0x1002fd0aa)
#10 kfun:kotlinx.coroutines#runBlocking$default(kotlin.coroutines.CoroutineContext?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>;kotlin.Int){0§<kotlin.Any?>}0:0 Builders.kt:36 (newMM.kexe:x86_64+0x1002fd6a3)
#11 kfun:kotlinx.coroutines.MultiWorkerDispatcher.workerRunLoop#internal MultithreadedDispatchers.kt:77 (newMM.kexe:x86_64+0x10030505d)
#12 kfun:kotlinx.coroutines.MultiWorkerDispatcher.<init>$lambda$0#internal MultithreadedDispatchers.kt:74 (newMM.kexe:x86_64+0x100305534)
#13 kfun:kotlinx.coroutines.MultiWorkerDispatcher.$<init>$lambda$0$FUNCTION_REFERENCE$1633.invoke#internal MultithreadedDispatchers.kt:74 (newMM.kexe:x86_64+0x100306539)
#14 kfun:kotlinx.coroutines.MultiWorkerDispatcher.$<init>$lambda$0$FUNCTION_REFERENCE$1633.$<bridge-UNN>invoke(){}#internal MultithreadedDispatchers.kt:74 (newMM.kexe:x86_64+0x100306648)
#15 WorkerLaunchpad Internal.kt:87 (newMM.kexe:x86_64+0x10002b05e)
#16 Worker::processQueueElement(bool) <null>:2 (newMM.kexe:x86_64+0x100e086d1)
#17 (anonymous namespace)::workerRoutine(void*) <null>:2 (newMM.kexe:x86_64+0x100e0784c)
Location is heap block of size 1024 at 0x7b6000010400 allocated by thread T3:
#0 posix_memalign <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x53603)
#1 kotlin::std_support::aligned_malloc(unsigned long, unsigned long) <null>:2 (newMM.kexe:x86_64+0x100e12788)
#2 Kotlin_interop_malloc <null>:2 (newMM.kexe:x86_64+0x100e1d2b9)
#3 kfun:kotlinx.cinterop.nativeMemUtils#allocRaw(kotlin.Long;kotlin.Int){}kotlin.native.internal.NativePtr NativeMem.kt:130 (newMM.kexe:x86_64+0x1000052e0)
#4 kfun:kotlinx.cinterop.nativeMemUtils#alloc(kotlin.Long;kotlin.Int){}kotlinx.cinterop.NativePointed NativeMem.kt:122 (newMM.kexe:x86_64+0x100005183)
#5 kfun:kotlinx.cinterop.nativeHeap#alloc(kotlin.Long;kotlin.Int){}kotlinx.cinterop.NativePointed Utils.kt:34 (newMM.kexe:x86_64+0x100004d46)
#6 kfun:kotlinx.atomicfu.locks.MutexPool#<init>(kotlin.Int){} Synchronized.kt:189 (newMM.kexe:x86_64+0x100186758)
#7 kfun:kotlinx.atomicfu.locks.mutexPool$delegate$lambda$0#internal Synchronized.kt:184 (newMM.kexe:x86_64+0x100187d0c)
#8 kfun:kotlinx.atomicfu.locks.$mutexPool$delegate$lambda$0$FUNCTION_REFERENCE$1640.invoke#internal Synchronized.kt:184 (newMM.kexe:x86_64+0x1001880ba)
#9 kfun:kotlin.native.concurrent.SynchronizedLazyImpl#<get-value>(){}1:0 Lazy.kt:144 (newMM.kexe:x86_64+0x10002bbf7)
#10 kfun:kotlinx.atomicfu.locks.<get-mutexPool>#internal Synchronized.kt:184 (newMM.kexe:x86_64+0x100182768)
#11 kfun:kotlinx.atomicfu.locks.SynchronizedObject#lock(){} Synchronized.kt:32 (newMM.kexe:x86_64+0x100183106)
#12 kfun:kotlinx.coroutines.channels.ArrayChannel#offerInternal(1:0){}kotlin.Any ArrayChannel.kt:58 (newMM.kexe:x86_64+0x1001f778e)
#13 kfun:kotlinx.coroutines.channels.AbstractSendChannel#send(1:0){} AbstractChannel.kt:134 (newMM.kexe:x86_64+0x1001e30a4)
#14 kfun:kotlinx.coroutines.channels.ChannelCoroutine#send(1:0){} ChannelCoroutine.kt:1 (newMM.kexe:x86_64+0x10020b0e3)
#15 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$collector$lambda$79COROUTINE$952.invokeSuspend#internal FlowInvariantsTest.kt:266 (newMM.kexe:x86_64+0x1006bf746)
#16 kfun:kotlinx.coroutines.flow.FlowInvariantsTest.$emptyContextTest$collector$lambda$79COROUTINE$952.invoke#internal FlowInvariantsTest.kt:265 (newMM.kexe:x86_64+0x1006bfb47)
#17 kfun:kotlinx.coroutines.flow.ChannelFlowBuilder.collectTo#internal Builders.kt:322 (newMM.kexe:x86_64+0x10021e372)
#18 kfun:kotlinx.coroutines.flow.internal.ChannelFlow.$<get-collectToFun>$lambda$0COROUTINE$2729.invokeSuspend#internal ChannelFlow.kt:60 (newMM.kexe:x86_64+0x100240b57)
#19 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#20 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#21 kfun:kotlinx.coroutines.WorkerDispatcher.dispatch$lambda$0#internal MultithreadedDispatchers.kt:28 (newMM.kexe:x86_64+0x100303b5b)
#22 kfun:kotlinx.coroutines.WorkerDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1631.invoke#internal MultithreadedDispatchers.kt:28 (newMM.kexe:x86_64+0x1003042c9)
#23 kfun:kotlinx.coroutines.WorkerDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1631.$<bridge-UNN>invoke(){}#internal MultithreadedDispatchers.kt:28 (newMM.kexe:x86_64+0x1003043d8)
#24 WorkerLaunchpad Internal.kt:87 (newMM.kexe:x86_64+0x10002b05e)
#25 Worker::processQueueElement(bool) <null>:2 (newMM.kexe:x86_64+0x100e086d1)
#26 (anonymous namespace)::workerRoutine(void*) <null>:2 (newMM.kexe:x86_64+0x100e0784c)
Thread T15 (tid=8195310, running) created by main thread at:
#0 pthread_create <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2bb6f)
#1 Kotlin_Worker_startInternal <null>:2 (newMM.kexe:x86_64+0x100e0cfe4)
#2 kfun:kotlin.native.concurrent.Worker.Companion#start(kotlin.Boolean;kotlin.String?){}kotlin.native.concurrent.Worker Worker.kt:43 (newMM.kexe:x86_64+0x10002ee13)
#3 kfun:kotlin.native.concurrent.Worker.Companion#start$default(kotlin.Boolean;kotlin.String?;kotlin.Int){}kotlin.native.concurrent.Worker Worker.kt:42 (newMM.kexe:x86_64+0x10002ef74)
#4 kfun:kotlinx.coroutines.MultiWorkerDispatcher.<init>#internal MultithreadedDispatchers.kt:71 (newMM.kexe:x86_64+0x100304ac2)
#5 kfun:kotlinx.coroutines#newFixedThreadPoolContext(kotlin.Int;kotlin.String){}kotlinx.coroutines.CloseableCoroutineDispatcher MultithreadedDispatchers.kt:21 (newMM.kexe:x86_64+0x100303005)
#6 kfun:kotlinx.coroutines.LimitedParallelismConcurrentTest.$testLimitedExecutor$lambda$2COROUTINE$2557.invokeSuspend#internal LimitedParallelismConcurrentTest.kt:27 (newMM.kexe:x86_64+0x100d15e78)
#7 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#8 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#9 kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long EventLoop.common.kt:284 (newMM.kexe:x86_64+0x1001aad02)
#10 kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal Builders.kt:83 (newMM.kexe:x86_64+0x1002fdf17)
#11 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:56 (newMM.kexe:x86_64+0x1002fd0aa)
#12 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#13 kfun:kotlinx.coroutines#runMtTest__at__kotlinx.coroutines.TestBase(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBaseExtension.kt:18 (newMM.kexe:x86_64+0x100d99183)
#14 kfun:kotlinx.coroutines#runMtTest$default__at__kotlinx.coroutines.TestBase(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBaseExtension.kt:12 (newMM.kexe:x86_64+0x100d99360)
#15 kfun:kotlinx.coroutines.LimitedParallelismConcurrentTest#testLimitedExecutor(){} LimitedParallelismConcurrentTest.kt:26 (newMM.kexe:x86_64+0x100d149a3)
#16 kfun:kotlinx.coroutines.$LimitedParallelismConcurrentTest$test$0.$testLimitedExecutor$FUNCTION_REFERENCE$1494.invoke#internal LimitedParallelismConcurrentTest.kt:26 (newMM.kexe:x86_64+0x100d18bf0)
#17 kfun:kotlinx.coroutines.$LimitedParallelismConcurrentTest$test$0.$testLimitedExecutor$FUNCTION_REFERENCE$1494.$<bridge-UNNN>invoke(-1:0){}#internal LimitedParallelismConcurrentTest.kt:26 (newMM.kexe:x86_64+0x100d18f36)
#18 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#19 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#20 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#21 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#22 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#23 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#24 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#25 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#26 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#27 start <null>:2 (dyld:x86_64+0x551d)
Thread T3 (tid=8194867, running) created by main thread at:
#0 pthread_create <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2bb6f)
#1 Kotlin_Worker_startInternal <null>:2 (newMM.kexe:x86_64+0x100e0cfe4)
#2 kfun:kotlin.native.concurrent.Worker.Companion#start(kotlin.Boolean;kotlin.String?){}kotlin.native.concurrent.Worker Worker.kt:43 (newMM.kexe:x86_64+0x10002ee13)
#3 kfun:kotlin.native.concurrent.Worker.Companion#start$default(kotlin.Boolean;kotlin.String?;kotlin.Int){}kotlin.native.concurrent.Worker Worker.kt:42 (newMM.kexe:x86_64+0x10002ef74)
#4 kfun:kotlinx.coroutines.WorkerDispatcher#<init>(kotlin.String){} MultithreadedDispatchers.kt:25 (newMM.kexe:x86_64+0x10030329a)
#5 kfun:kotlinx.coroutines.DefaultExecutor#<init>(){} CoroutineContext.kt:13 (newMM.kexe:x86_64+0x1002ff65d)
#6 kotlin::mm::InitSingleton(kotlin::mm::ThreadData*, ObjHeader**, TypeInfo const*, void (*)(ObjHeader*), ObjHeader**) <null>:2 (newMM.kexe:x86_64+0x100dff504)
#7 InitSingleton <null>:2 (newMM.kexe:x86_64+0x100dfef35)
#8 kfun:kotlinx.coroutines.$init_global#internal.188 CoroutineContext.kt:44 (newMM.kexe:x86_64+0x1002fe5dd)
#9 CallInitGlobalPossiblyLock <null>:2 (newMM.kexe:x86_64+0x100e1e6e9)
#10 kfun:kotlinx.coroutines#newCoroutineContext__at__kotlinx.coroutines.CoroutineScope(kotlin.coroutines.CoroutineContext){}kotlin.coroutines.CoroutineContext CoroutineContext.kt:1 (newMM.kexe:x86_64+0x1002fe8e7)
#11 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:46 (newMM.kexe:x86_64+0x1002fcf94)
#12 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#13 kfun:kotlinx.coroutines.TestBase#runTest$default(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBase.kt:78 (newMM.kexe:x86_64+0x100d98270)
#14 kfun:kotlinx.coroutines.AbstractCoroutineTest#testNotifications(){} AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x10030e3a3)
#15 kfun:kotlinx.coroutines.$AbstractCoroutineTest$test$0.$testNotifications$FUNCTION_REFERENCE$4.invoke#internal AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x100311740)
#16 kfun:kotlinx.coroutines.$AbstractCoroutineTest$test$0.$testNotifications$FUNCTION_REFERENCE$4.$<bridge-UNNN>invoke(-1:0){}#internal AbstractCoroutineTest.kt:13 (newMM.kexe:x86_64+0x100311a86)
#17 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#18 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#19 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#20 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#21 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#22 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#23 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#24 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#25 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#26 start <null>:2 (dyld:x86_64+0x551d)
SUMMARY: ThreadSanitizer: data race Synchronized.kt:204 in kfun:kotlinx.atomicfu.locks.MutexPool#release(kotlinx.cinterop.CPointer<interop.mutex_node>){}
ArrayBroadcastChannel
WARNING: ThreadSanitizer: data race (pid=88874)
Write of size 8 at 0x7b0c0078a970 by thread T22:
#0 Kotlin_Array_set <null>:2 (newMM.kexe:x86_64+0x100e19cfa)
#1 kfun:kotlinx.coroutines.channels.ArrayBroadcastChannel.updateHead#internal ArrayBroadcastChannel.kt:152 (newMM.kexe:x86_64+0x1001f1aa7)
#2 kfun:kotlinx.coroutines.channels.ArrayBroadcastChannel#updateHead$default(kotlinx.coroutines.channels.ArrayBroadcastChannel.Subscriber<1:0>?;kotlinx.coroutines.channels.ArrayBroadcastChannel.Subscriber<1:0>?;kotlin.Int){} ArrayBroadcastChannel.kt:149 (newMM.kexe:x86_64+0x1001f29d9)
#3 kfun:kotlinx.coroutines.channels.ArrayBroadcastChannel.Subscriber.close#internal ArrayBroadcastChannel.kt:232 (newMM.kexe:x86_64+0x1001f3c40)
#4 kfun:kotlinx.coroutines.channels.AbstractChannel#cancelInternal(kotlin.Throwable?){}kotlin.Boolean AbstractChannel.kt:661 (newMM.kexe:x86_64+0x1001d771d)
#5 kfun:kotlinx.coroutines.channels.AbstractChannel#cancel(kotlin.coroutines.cancellation.CancellationException?){} AbstractChannel.kt:656 (newMM.kexe:x86_64+0x1001d760e)
#6 kfun:kotlinx.coroutines.channels.ReceiveChannel#cancel$default(kotlin.coroutines.cancellation.CancellationException?;kotlin.Int){} Channel.kt:279 (newMM.kexe:x86_64+0x1002040d0)
#7 kfun:kotlinx.coroutines.channels.BroadcastChannelSubStressTest.$testStress$lambda$3$lambda$1COROUTINE$2584.invokeSuspend#internal BroadcastChannelSubStressTest.kt:43 (newMM.kexe:x86_64+0x100d2c139)
#8 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#9 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#10 kfun:kotlinx.coroutines.DarwinGlobalQueueDispatcher.dispatch$lambda$0#internal Dispatchers.kt:26 (newMM.kexe:x86_64+0x10030cb4b)
#11 kfun:kotlinx.coroutines.DarwinGlobalQueueDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1638.invoke#internal Dispatchers.kt:25 (newMM.kexe:x86_64+0x10030cc09)
#12 kfun:kotlinx.coroutines.DarwinGlobalQueueDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1638.$<bridge-UNN>invoke(){}#internal Dispatchers.kt:25 (newMM.kexe:x86_64+0x10030cd18)
#13 _6f72672e6a6574627261696e732e6b6f746c696e783a6b6f746c696e782d636f726f7574696e65732d636f7265_knbridge17 Dispatchers.kt:25 (newMM.kexe:x86_64+0x10030df55)
#14 ___6f72672e6a6574627261696e732e6b6f746c696e783a6b6f746c696e782d636f726f7574696e65732d636f7265_knbridge15_block_invoke <null>:2 (newMM.kexe:x86_64+0x100dc83fe)
#15 __tsan::invoke_and_release_block(void*) <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x77f0b)
#16 _dispatch_client_callout <null>:2 (libdispatch.dylib:x86_64+0x3316)
Previous read of size 8 at 0x7b0c0078a970 by thread T4:
#0 Kotlin_Array_get <null>:2 (newMM.kexe:x86_64+0x100e19bda)
#1 kfun:kotlinx.coroutines.channels.ArrayBroadcastChannel.elementAt#internal ArrayBroadcastChannel.kt:212 (newMM.kexe:x86_64+0x1001f3156)
#2 kfun:kotlinx.coroutines.channels.ArrayBroadcastChannel.Subscriber.peekUnderLock#internal ArrayBroadcastChannel.kt:371 (newMM.kexe:x86_64+0x1001f5939)
#3 kfun:kotlinx.coroutines.channels.ArrayBroadcastChannel.Subscriber.checkOffer#internal ArrayBroadcastChannel.kt:254 (newMM.kexe:x86_64+0x1001f4095)
#4 kfun:kotlinx.coroutines.channels.ArrayBroadcastChannel.checkSubOffers#internal ArrayBroadcastChannel.kt:142 (newMM.kexe:x86_64+0x1001f0fd4)
#5 kfun:kotlinx.coroutines.channels.ArrayBroadcastChannel#offerInternal(1:0){}kotlin.Any ArrayBroadcastChannel.kt:111 (newMM.kexe:x86_64+0x1001f04c5)
#6 kfun:kotlinx.coroutines.channels.AbstractSendChannel.sendSuspend#internal AbstractChannel.kt:17 (newMM.kexe:x86_64+0x1001e42bc)
#7 kfun:kotlinx.coroutines.channels.AbstractSendChannel#send(1:0){} AbstractChannel.kt:136 (newMM.kexe:x86_64+0x1001e30f1)
#8 kfun:kotlinx.coroutines.channels.BroadcastChannelSubStressTest.$testStress$lambda$3$lambda$0COROUTINE$2583.invokeSuspend#internal BroadcastChannelSubStressTest.kt:30 (newMM.kexe:x86_64+0x100d2b021)
#9 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#10 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#11 kfun:kotlinx.coroutines.DarwinGlobalQueueDispatcher.dispatch$lambda$0#internal Dispatchers.kt:26 (newMM.kexe:x86_64+0x10030cb4b)
#12 kfun:kotlinx.coroutines.DarwinGlobalQueueDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1638.invoke#internal Dispatchers.kt:25 (newMM.kexe:x86_64+0x10030cc09)
#13 kfun:kotlinx.coroutines.DarwinGlobalQueueDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1638.$<bridge-UNN>invoke(){}#internal Dispatchers.kt:25 (newMM.kexe:x86_64+0x10030cd18)
#14 _6f72672e6a6574627261696e732e6b6f746c696e783a6b6f746c696e782d636f726f7574696e65732d636f7265_knbridge17 Dispatchers.kt:25 (newMM.kexe:x86_64+0x10030df55)
#15 ___6f72672e6a6574627261696e732e6b6f746c696e783a6b6f746c696e782d636f726f7574696e65732d636f7265_knbridge15_block_invoke <null>:2 (newMM.kexe:x86_64+0x100dc83fe)
#16 __tsan::invoke_and_release_block(void*) <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x77f0b)
#17 _dispatch_client_callout <null>:2 (libdispatch.dylib:x86_64+0x3316)
Location is heap block of size 40 at 0x7b0c0078a950 allocated by main thread:
#0 calloc <null>:3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x534a4)
#1 kotlin::mm::internal::ObjectFactoryStorage<8ul, kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData> >::Node::Create(kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData>&, unsigned long) <null>:2 (newMM.kexe:x86_64+0x100dd5c90)
#2 kotlin::mm::internal::ObjectFactoryStorage<8ul, kotlin::gc::AllocatorWithGC<kotlin::gc::Allocator, kotlin::gc::ConcurrentMarkAndSweep::ThreadData> >::Producer::Insert(unsigned long) <null>:2 (newMM.kexe:x86_64+0x100dd56b1)
#3 AllocArrayInstance <null>:2 (newMM.kexe:x86_64+0x100dfec45)
#4 kfun:kotlinx.coroutines.channels.ArrayBroadcastChannel#<init>(kotlin.Int){} ArrayBroadcastChannel.kt:48 (newMM.kexe:x86_64+0x1001ee6af)
#5 kfun:kotlinx.coroutines.channels#BroadcastChannel(kotlin.Int){0§<kotlin.Any?>}kotlinx.coroutines.channels.BroadcastChannel<0:0> BroadcastChannel.kt:74 (newMM.kexe:x86_64+0x100202319)
#6 kfun:kotlinx.coroutines.channels.TestBroadcastChannelKind.ARRAY_1.create#internal TestBroadcastChannelKind.kt:9 (newMM.kexe:x86_64+0x10068f37f)
#7 kfun:kotlinx.coroutines.channels.BroadcastChannelSubStressTest.$testStress$lambda$3COROUTINE$2586.invokeSuspend#internal BroadcastChannelSubStressTest.kt:24 (newMM.kexe:x86_64+0x100d2e135)
#8 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} ContinuationImpl.kt:26 (newMM.kexe:x86_64+0x10001d1b2)
#9 kfun:kotlinx.coroutines.DispatchedTask#run(){} DispatchedTask.kt:88 (newMM.kexe:x86_64+0x1002c0720)
#10 kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long EventLoop.common.kt:284 (newMM.kexe:x86_64+0x1001aad02)
#11 kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal Builders.kt:83 (newMM.kexe:x86_64+0x1002fdf17)
#12 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 Builders.kt:56 (newMM.kexe:x86_64+0x1002fd0aa)
#13 kfun:kotlinx.coroutines.TestBase#runTest(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBase.kt:86 (newMM.kexe:x86_64+0x100d97868)
#14 kfun:kotlinx.coroutines#runMtTest__at__kotlinx.coroutines.TestBase(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>){} TestBaseExtension.kt:18 (newMM.kexe:x86_64+0x100d99183)
#15 kfun:kotlinx.coroutines#runMtTest$default__at__kotlinx.coroutines.TestBase(kotlin.Function1<kotlin.Throwable,kotlin.Boolean>?;kotlin.collections.List<kotlin.Function1<kotlin.Throwable,kotlin.Boolean>>?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,kotlin.Unit>;kotlin.Int){} TestBaseExtension.kt:12 (newMM.kexe:x86_64+0x100d99360)
#16 kfun:kotlinx.coroutines.channels.BroadcastChannelSubStressTest#testStress(){} BroadcastChannelSubStressTest.kt:23 (newMM.kexe:x86_64+0x100d2aac3)
#17 kfun:kotlinx.coroutines.channels.$BroadcastChannelSubStressTest$test$0.$testStress$FUNCTION_REFERENCE$1508.invoke#internal BroadcastChannelSubStressTest.kt:23 (newMM.kexe:x86_64+0x100d30150)
#18 kfun:kotlinx.coroutines.channels.$BroadcastChannelSubStressTest$test$0.$testStress$FUNCTION_REFERENCE$1508.$<bridge-UNNN>invoke(-1:0){}#internal BroadcastChannelSubStressTest.kt:23 (newMM.kexe:x86_64+0x100d30496)
#19 kfun:kotlin.native.internal.test.BaseClassSuite.TestCase#run(){} TestSuite.kt:85 (newMM.kexe:x86_64+0x100065e76)
#20 kfun:kotlin.native.internal.test.TestRunner.run#internal TestRunner.kt:238 (newMM.kexe:x86_64+0x100059602)
#21 kfun:kotlin.native.internal.test.TestRunner.runIteration#internal TestRunner.kt:261 (newMM.kexe:x86_64+0x10005d22f)
#22 kfun:kotlin.native.internal.test.TestRunner#run(){}kotlin.Int TestRunner.kt:283 (newMM.kexe:x86_64+0x10005eba1)
#23 kfun:kotlin.native.internal.test#testLauncherEntryPoint(kotlin.Array<kotlin.String>){}kotlin.Int Launcher.kt:30 (newMM.kexe:x86_64+0x100049d03)
#24 kfun:kotlinx.coroutines#mainNoExit(kotlin.Array<kotlin.String>){} Launcher.kt:25 (newMM.kexe:x86_64+0x100d9e6b1)
#25 Konan_start Launcher.kt:24 (newMM.kexe:x86_64+0x100d9e82c)
#26 Init_and_run_start <null>:2 (newMM.kexe:x86_64+0x100e23528)
#27 Konan_main <null>:2 (newMM.kexe:x86_64+0x100e235c8)
#28 start <null>:2 (dyld:x86_64+0x551d)