1 Reply
      Latest reply on Dec 31, 2019 3:35 AM by eskimo
      yeskert Level 1 Level 1 (0 points)

        Hi,all.

           My application used the JavaScriptCore framework.

           What I'm confused about is:

           Instance of JSContext was created in  the work queue, and there was no code that access JSCore in the main thread,but JSC::JSRunLoopTimer::Manager::timerDidFire executed in the main thread.

           Sometimes,I got a dead-lock.

         

         

        The call stack of the main thread:

         

        #0 0x0000000194a4dc94 in __psynch_cvwait ()

        #1 0x000000019496acf8 in _pthread_cond_wait$VARIANT$mp ()

        #2 0x00000001a399595c in ***::ThreadCondition::timedWait(***::Mutex&, ***::WallTime) ()

        #3 0x00000001a397b848 in ***::ParkingLot::parkConditionallyImpl(void const*, ***::ScopedLambda<bool ()> const&, ***::ScopedLambda<void ()> const&, ***::TimeWithDynamicClockType const&) ()

        #4 0x00000001a396e6e4 in ***::LockAlgorithm<unsigned char, (unsigned char)1, (unsigned char)2, ***::EmptyLockHooks<unsigned char> >::lockSlow(***::Atomic<unsigned char>&) ()

        #5 0x00000001a4379f68 in JSC::JSLock::lock(long) ()

        #6 0x00000001a43a4b44 in JSC::JSRunLoopTimer::timerDidFire() ()

        #7 0x00000001a43a47c8 in JSC::JSRunLoopTimer::Manager::timerDidFire() ()

        #8 0x0000000194bd503c in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ ()

        #9 0x0000000194bd4d78 in __CFRunLoopDoTimer ()

        #10 0x0000000194bd4448 in __CFRunLoopDoTimers ()

        #11 0x0000000194bcf584 in __CFRunLoopRun ()

        #12 0x0000000194bceadc in CFRunLoopRunSpecific ()

        #13 0x0000000194f0e7f4 in -[NSRunLoop(NSRunLoop) runMode:beforeDate:] ()

         

         

         

           device:iPhone 6s

           iOS:13.3

           xcode:11.3

         

         

           Thanks!