[webkit-dev] Safari, Quicktime and blocking

André-John Mas ajmas at sympatico.ca
Sat Mar 18 09:00:19 PST 2006


I often find Safari blocking because of some plugin taking too much  
time. The usual culrpit is
Quicktime. I decided to run Spin Control today and got a block of 158  
seconds. I wouldn't be
surprised of many people would have opted for a 'force-quit' beyond  
the 60 second mark. Anyhow
here is the output from 'Spin Control':

Call graph:
     15864 Thread_6603
       15864 0x5ca94
         15864 0x5cbf0
           15864 NSApplicationMain
             15864 -[NSApplication run]
               15864 0x6e74
                 15864 -[NSApplication  
nextEventMatchingMask:untilDate:inMode:dequeue:]
                   15864 _DPSNextEvent
                     15864 BlockUntilNextEventMatchingListInMode
                       15864 ReceiveNextEventCommon
                         15864 RunCurrentEventLoopInMode
                           15864 CFRunLoopRunSpecific
                             15864 __CFRunLoopRun
                               15864 __CFRunLoopDoTimer
                                 15864 __NSFireTimer
                                   15864 +[QTMovie idleAllMovies:]
                                     15864 CFSetApplyFunction
                                       15864 -[QTMovie idle]
                                         15864 NPN_GetValue
                                           15864 NPN_GetValue
                                             15864 NPN_GetValue
                                               15864  
WebHelper_Private_HandleEvent
                                                 15864 NPP_HandleEvent
                                                   15864 MCHandleEvent
                                                     15864 CallComponent
                                                       15864  
CallComponentFunctionCommon
                                                         15864  
_MCHandleEvent
                                                           15864  
MCIsPlayerEvent
                                                             15864  
CallComponent
                                                               15864  
CallComponentFunctionCommon
                                                                  
15864 _MCIsPlayerEvent
                                                                    
15864 internalDoAction
                                                                      
15864 doIdleMovie
                                                                       1 
5864 TaskMovie_priv
                                                                         
  15864 MediaMoviesTask
                                                                         
    15864 CallComponent
                                                                         
      15864 MPEGMediaDispatcher
                                                                         
        15864 CallComponent
                                                                         
          15864 CallComponentFunctionCommon
                                                                         
            15864 GenericMoviesTask
                                                                         
              15864 doGenericIdle
                                                                         
                15864 MediaIdle
                                                                         
                  15864 CallComponent
                                                                         
                    15864 MPEGMediaDispatcher
                                                                         
                      15864 MPEGMediaIdle
                                                                         
                        15864 ReallyIdle
                                                                         
                          15864 SHDecodeIdle
                                                                         
                            15864 CallComponent
                                                                         
                              15864 MPEGSystemDispatcher
                                                                         
                                15864 MPEGSystemIdle
                                                                         
                                  15864 QTYieldToThread
                                                                         
                                    15864 pthread_cond_wait
                                                                         
                                      15864 semaphore_wait_signal_trap
                                                                         
                                        15864 semaphore_wait_signal_trap
     15864 Thread_6703
       15864 _pthread_body
         15864 __ape_agent
           15864 __ape_internal
             15864 mach_msg
               15864 mach_msg_trap
                 15864 mach_msg_trap
     15864 Thread_6803
       15864 _pthread_body
         15864 ah_serv_loop
           15864 mach_msg
             15864 mach_msg_trap
               15864 mach_msg_trap
     15864 Thread_6903
       15864 _pthread_body
         15864 forkThreadForFunction
           15864 +[WebFileDatabase _syncLoop:]
             15864 -[NSRunLoop run]
               15864 -[NSRunLoop runMode:beforeDate:]
                 15864 CFRunLoopRunSpecific
                   15864 __CFRunLoopRun
                     15864 mach_msg
                       15864 mach_msg_trap
                         15864 mach_msg_trap
     15864 Thread_6a03
       15864 _pthread_body
         15864 forkThreadForFunction
           15864 +[NSURLConnection(NSURLConnectionInternal)  
_resourceLoadLoop:]
             15864 CFRunLoopRunSpecific
               15864 __CFRunLoopRun
                 15864 mach_msg
                   15864 mach_msg_trap
                     15864 mach_msg_trap
     15864 Thread_6b03
       15864 _pthread_body
         15864 forkThreadForFunction
           15864 +[NSURLCache _diskCacheSyncLoop:]
             15864 CFRunLoopRunSpecific
               15864 __CFRunLoopRun
                 15864 mach_msg
                   15864 mach_msg_trap
                     15864 mach_msg_trap
     15864 Thread_6c03
       15864 _pthread_body
         15864 forkThreadForFunction
           15864 -[AsyncDB _run:]
             15864 -[NSConditionLock lockWhenCondition:]
               15864 pthread_cond_wait
                 15864 semaphore_wait_signal_trap
                   15864 semaphore_wait_signal_trap
     15864 Thread_6d03
       15864 _pthread_body
         15864 __CFSocketManager
           15864 select
             15864 select
     15864 Thread_6e03
       15864 _pthread_body
         15864 forkThreadForFunction
           15864 -[NSUIHeartBeat _heartBeatThread:]
             15864 -[NSConditionLock lockWhenCondition:]
               15864 pthread_cond_wait
                 15864 semaphore_wait_signal_trap
                   15864 semaphore_wait_signal_trap
     15864 Thread_6f03
       15864 _pthread_body
         15864 QTSNetworkThread_RunThread
           15864 CFRunLoopRun
             15864 CFRunLoopRunSpecific
               15864 __CFRunLoopRun
                 15864 mach_msg
                   15864 mach_msg_trap
                     15864 mach_msg_trap
     15864 Thread_7003
       15864 _pthread_body
         15864 CAPThread::Entry(CAPThread*)
           15864 HALRunLoop::OwnThread(void*)
             15864 CFRunLoopRunSpecific
               15864 __CFRunLoopRun
                 15864 mach_msg
                   15864 mach_msg_trap
                     15864 mach_msg_trap
     15864 Thread_7103
       15864 _pthread_body
         15864 CAPThread::Entry(CAPThread*)
           15864 HP_IOThread::ThreadEntry(HP_IOThread*)
             15864 HP_IOThread::WorkLoop()
               15864 CAGuard::WaitUntil(unsigned long long)
                 15864 CAGuard::WaitFor(unsigned long long)
                   15864 pthread_cond_timedwait_relative_np
                     15863 restore_sem_to_pool
                       15863 restore_sem_to_pool
                     1 semaphore_timedwait_signal_trap
                       1 semaphore_timedwait_signal_trap
     15864 Thread_7203
       15864 _pthread_body
         15864 TimerThread
           15864 TSWaitOnSemaphoreCommon
             15864 pthread_cond_timedwait_relative_np
               15864 semaphore_timedwait_signal_trap
                 15864 semaphore_timedwait_signal_trap
     15864 Thread_7303
       15864 _pthread_body
         15864 MacThreadFunc
           15864 VideoThreadEntry
             15864 ReallyDecodeThePicture
               15864 CalcSourceAndDestPtrs
                 15864 CalcSourceAndDestPtrs
     15864 Thread_7403
       15864 _pthread_body
         15864 MacThreadFunc
           15864 AudioThreadEntry
             15864 S_MpaAdvanceToNextStartCode
               15864 AudioWaitForBufferFullness
                 15864 QTYieldToThread
                   15864 pthread_cond_wait
                     15864 semaphore_wait_signal_trap
                       15864 semaphore_wait_signal_trap
     15864 Thread_7503
       15864 _pthread_body
         15864 MacThreadFunc
           15864 SystemThreadEntry
             15864 S_DecodeVideoPacket2
               15864 SHDecodeIdle
                 15864 CallComponent
                   15864 MPEGVideoDispatcher
                     15864 MPEGVideoIdle
                       15864 QTYieldToThread
                         15864 pthread_cond_wait
                           15864 semaphore_wait_signal_trap
                             15864 semaphore_wait_signal_trap
     15864 Thread_7603
       15864 _pthread_body
         15864 DeferredTaskThread
           15864 TSWaitOnSemaphoreCommon
             15864 pthread_cond_timedwait_relative_np
               15864 semaphore_timedwait_signal_trap
                 15864 semaphore_timedwait_signal_trap

Total number in stack (recursive counted multiple, when >=5):
         16       _pthread_body
         7       CallComponent
         7       mach_msg
         7       mach_msg_trap
         6       CFRunLoopRunSpecific
         6       __CFRunLoopRun
         5       forkThreadForFunction
         5       pthread_cond_wait
         5       semaphore_wait_signal_trap

Sort by top of stack, same collapsed (when >= 5):
         mach_msg_trap        111048
         semaphore_wait_signal_trap        79320
         semaphore_timedwait_signal_trap        31729
         CalcSourceAndDestPtrs        15864
         select        15864
         restore_sem_to_pool        15863





More information about the webkit-dev mailing list