Changeset 259016 in webkit
- Timestamp:
- Mar 25, 2020 3:53:10 PM (4 years ago)
- Location:
- trunk/Source/WTF
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r258949 r259016 1 2020-03-25 Sihui Liu <sihui_liu@apple.com> 2 3 Remove unused suspend functions in CrossThreadTaskHandler 4 https://bugs.webkit.org/show_bug.cgi?id=209553 5 6 Reviewed by Geoffrey Garen. 7 8 * wtf/CrossThreadTaskHandler.cpp: 9 (WTF::CrossThreadTaskHandler::taskRunLoop): 10 (WTF::CrossThreadTaskHandler::suspendAndWait): Deleted. 11 (WTF::CrossThreadTaskHandler::resume): Deleted. 12 * wtf/CrossThreadTaskHandler.h: 13 1 14 2020-03-24 Per Arne Vollan <pvollan@apple.com> 2 15 -
trunk/Source/WTF/wtf/CrossThreadTaskHandler.cpp
r248846 r259016 73 73 74 74 while (!m_taskQueue.isKilled()) { 75 { 76 std::unique_ptr<AutodrainedPool> autodrainedPool = (m_useAutodrainedPool == AutodrainedPoolForRunLoop::Use) ? makeUnique<AutodrainedPool>() : nullptr; 75 std::unique_ptr<AutodrainedPool> autodrainedPool = (m_useAutodrainedPool == AutodrainedPoolForRunLoop::Use) ? makeUnique<AutodrainedPool>() : nullptr; 77 76 78 m_taskQueue.waitForMessage().performTask(); 79 } 80 81 Locker<Lock> shouldSuspendLocker(m_shouldSuspendLock); 82 while (m_shouldSuspend) { 83 m_suspendedLock.lock(); 84 if (!m_suspended) { 85 m_suspended = true; 86 m_suspendedCondition.notifyOne(); 87 } 88 m_suspendedLock.unlock(); 89 m_shouldSuspendCondition.wait(m_shouldSuspendLock); 90 } 77 m_taskQueue.waitForMessage().performTask(); 91 78 } 92 79 } … … 103 90 } 104 91 105 void CrossThreadTaskHandler::suspendAndWait()106 {107 ASSERT(isMainThread());108 {109 Locker<Lock> locker(m_shouldSuspendLock);110 m_shouldSuspend = true;111 }112 113 // Post an empty task to ensure database thread knows m_shouldSuspend and sets m_suspended.114 postTask(CrossThreadTask([]() { }));115 116 Locker<Lock> locker(m_suspendedLock);117 while (!m_suspended)118 m_suspendedCondition.wait(m_suspendedLock);119 }120 121 void CrossThreadTaskHandler::resume()122 {123 ASSERT(isMainThread());124 Locker<Lock> locker(m_shouldSuspendLock);125 if (m_shouldSuspend) {126 m_suspendedLock.lock();127 if (m_suspended)128 m_suspended = false;129 m_suspendedLock.unlock();130 m_shouldSuspend = false;131 m_shouldSuspendCondition.notifyOne();132 }133 }134 135 92 } // namespace WTF -
trunk/Source/WTF/wtf/CrossThreadTaskHandler.h
r245871 r259016 46 46 WTF_EXPORT_PRIVATE void postTask(CrossThreadTask&&); 47 47 WTF_EXPORT_PRIVATE void postTaskReply(CrossThreadTask&&); 48 WTF_EXPORT_PRIVATE void suspendAndWait();49 WTF_EXPORT_PRIVATE void resume();50 48 51 49 private: … … 59 57 bool m_mainThreadReplyScheduled { false }; 60 58 61 bool m_shouldSuspend { false };62 Condition m_shouldSuspendCondition;63 Lock m_shouldSuspendLock;64 65 bool m_suspended { false };66 Condition m_suspendedCondition;67 Lock m_suspendedLock;68 69 59 CrossThreadQueue<CrossThreadTask> m_taskQueue; 70 60 CrossThreadQueue<CrossThreadTask> m_taskReplyQueue;
Note: See TracChangeset
for help on using the changeset viewer.