| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2006, 2008 Apple Inc. All rights reserved. | 2  * Copyright (C) 2006, 2008 Apple Inc. All rights reserved. | 
| 3  * Copyright (C) 2009 Google Inc. All rights reserved. | 3  * Copyright (C) 2009 Google Inc. All rights reserved. | 
| 4  * | 4  * | 
| 5  * Redistribution and use in source and binary forms, with or without | 5  * Redistribution and use in source and binary forms, with or without | 
| 6  * modification, are permitted provided that the following conditions | 6  * modification, are permitted provided that the following conditions | 
| 7  * are met: | 7  * are met: | 
| 8  * 1. Redistributions of source code must retain the above copyright | 8  * 1. Redistributions of source code must retain the above copyright | 
| 9  *    notice, this list of conditions and the following disclaimer. | 9  *    notice, this list of conditions and the following disclaimer. | 
| 10  * 2. Redistributions in binary form must reproduce the above copyright | 10  * 2. Redistributions in binary form must reproduce the above copyright | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
| 24  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 24  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
| 25  */ | 25  */ | 
| 26 | 26 | 
| 27 #include "config.h" | 27 #include "config.h" | 
| 28 #include "platform/ThreadTimers.h" | 28 #include "platform/ThreadTimers.h" | 
| 29 | 29 | 
| 30 #include "platform/PlatformThreadData.h" | 30 #include "platform/PlatformThreadData.h" | 
| 31 #include "platform/SharedTimer.h" | 31 #include "platform/SharedTimer.h" | 
| 32 #include "platform/Timer.h" | 32 #include "platform/Timer.h" | 
| 33 #include "platform/TraceEvent.h" | 33 #include "platform/TraceEvent.h" | 
| 34 #include "platform/heap/AddressSanitizer.h" |  | 
| 35 #include "public/platform/Platform.h" | 34 #include "public/platform/Platform.h" | 
| 36 #include "public/platform/WebScheduler.h" | 35 #include "public/platform/WebScheduler.h" | 
| 37 #include "wtf/CurrentTime.h" | 36 #include "wtf/CurrentTime.h" | 
| 38 #include "wtf/MainThread.h" | 37 #include "wtf/MainThread.h" | 
| 39 | 38 | 
| 40 namespace blink { | 39 namespace blink { | 
| 41 | 40 | 
| 42 // Fire timers for this length of time, and then quit to let the run loop proces
     s user input events. | 41 // Fire timers for this length of time, and then quit to let the run loop proces
     s user input events. | 
| 43 // 100ms is about a perceptable delay in UI, so use a half of that as a threshol
     d. | 42 // 100ms is about a perceptable delay in UI, so use a half of that as a threshol
     d. | 
| 44 // This is to prevent UI freeze when there are too many timers or machine perfor
     mance is low. | 43 // This is to prevent UI freeze when there are too many timers or machine perfor
     mance is low. | 
| (...skipping 27 matching lines...) Expand all  Loading... | 
| 72     } | 71     } | 
| 73 | 72 | 
| 74     m_sharedTimer = sharedTimer; | 73     m_sharedTimer = sharedTimer; | 
| 75 | 74 | 
| 76     if (m_sharedTimer) { | 75     if (m_sharedTimer) { | 
| 77         m_sharedTimer->setFiredFunction(ThreadTimers::sharedTimerFired); | 76         m_sharedTimer->setFiredFunction(ThreadTimers::sharedTimerFired); | 
| 78         updateSharedTimer(); | 77         updateSharedTimer(); | 
| 79     } | 78     } | 
| 80 } | 79 } | 
| 81 | 80 | 
| 82 NO_LAZY_SWEEP_SANITIZE_ADDRESS |  | 
| 83 void ThreadTimers::updateSharedTimer() | 81 void ThreadTimers::updateSharedTimer() | 
| 84 { | 82 { | 
| 85     if (!m_sharedTimer) | 83     if (!m_sharedTimer) | 
| 86         return; | 84         return; | 
| 87 | 85 | 
| 88     if (m_firingTimers || m_timerHeap.isEmpty()) { | 86     if (m_firingTimers || m_timerHeap.isEmpty()) { | 
| 89         m_pendingSharedTimerFireTime = 0; | 87         m_pendingSharedTimerFireTime = 0; | 
| 90         m_sharedTimer->stop(); | 88         m_sharedTimer->stop(); | 
| 91     } else { | 89     } else { | 
| 92         double nextFireTime = m_timerHeap.first()->m_nextFireTime; | 90         double nextFireTime = m_timerHeap.first()->m_nextFireTime; | 
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 143             || (isMainThread() && Platform::current()->currentThread()->schedule
     r()->shouldYieldForHighPriorityWork())) | 141             || (isMainThread() && Platform::current()->currentThread()->schedule
     r()->shouldYieldForHighPriorityWork())) | 
| 144             break; | 142             break; | 
| 145     } | 143     } | 
| 146 | 144 | 
| 147     m_firingTimers = false; | 145     m_firingTimers = false; | 
| 148 | 146 | 
| 149     updateSharedTimer(); | 147     updateSharedTimer(); | 
| 150 } | 148 } | 
| 151 | 149 | 
| 152 } // namespace blink | 150 } // namespace blink | 
|  | 151 | 
| OLD | NEW | 
|---|