OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 | 109 |
110 WorkerThread* m_workerThread; | 110 WorkerThread* m_workerThread; |
111 std::unique_ptr<CancellableTaskFactory> m_cancellableTaskFactory; | 111 std::unique_ptr<CancellableTaskFactory> m_cancellableTaskFactory; |
112 }; | 112 }; |
113 | 113 |
114 static Mutex& threadSetMutex() { | 114 static Mutex& threadSetMutex() { |
115 DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, new Mutex); | 115 DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, new Mutex); |
116 return mutex; | 116 return mutex; |
117 } | 117 } |
118 | 118 |
119 static HashSet<WorkerThread*>& workerThreads() { | |
120 DEFINE_STATIC_LOCAL(HashSet<WorkerThread*>, threads, ()); | |
121 return threads; | |
122 } | |
123 | |
124 WorkerThreadLifecycleContext::WorkerThreadLifecycleContext() { | 119 WorkerThreadLifecycleContext::WorkerThreadLifecycleContext() { |
125 DCHECK(isMainThread()); | 120 DCHECK(isMainThread()); |
126 } | 121 } |
127 | 122 |
128 WorkerThreadLifecycleContext::~WorkerThreadLifecycleContext() { | 123 WorkerThreadLifecycleContext::~WorkerThreadLifecycleContext() { |
129 DCHECK(isMainThread()); | 124 DCHECK(isMainThread()); |
130 } | 125 } |
131 | 126 |
132 void WorkerThreadLifecycleContext::notifyContextDestroyed() { | 127 void WorkerThreadLifecycleContext::notifyContextDestroyed() { |
133 DCHECK(isMainThread()); | 128 DCHECK(isMainThread()); |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 WorkerInspectorController* WorkerThread::workerInspectorController() { | 297 WorkerInspectorController* WorkerThread::workerInspectorController() { |
303 DCHECK(isCurrentThread()); | 298 DCHECK(isCurrentThread()); |
304 return m_workerInspectorController.get(); | 299 return m_workerInspectorController.get(); |
305 } | 300 } |
306 | 301 |
307 unsigned WorkerThread::workerThreadCount() { | 302 unsigned WorkerThread::workerThreadCount() { |
308 MutexLocker lock(threadSetMutex()); | 303 MutexLocker lock(threadSetMutex()); |
309 return workerThreads().size(); | 304 return workerThreads().size(); |
310 } | 305 } |
311 | 306 |
| 307 HashSet<WorkerThread*>& WorkerThread::workerThreads() { |
| 308 DCHECK(isMainThread()); |
| 309 DEFINE_STATIC_LOCAL(HashSet<WorkerThread*>, threads, ()); |
| 310 return threads; |
| 311 } |
| 312 |
312 PlatformThreadId WorkerThread::platformThreadId() { | 313 PlatformThreadId WorkerThread::platformThreadId() { |
313 if (!m_requestedToStart) | 314 if (!m_requestedToStart) |
314 return 0; | 315 return 0; |
315 return workerBackingThread().backingThread().platformThread().threadId(); | 316 return workerBackingThread().backingThread().platformThread().threadId(); |
316 } | 317 } |
317 | 318 |
318 bool WorkerThread::isForciblyTerminated() { | 319 bool WorkerThread::isForciblyTerminated() { |
319 MutexLocker lock(m_threadStateMutex); | 320 MutexLocker lock(m_threadStateMutex); |
320 switch (m_exitCode) { | 321 switch (m_exitCode) { |
321 case ExitCode::NotTerminated: | 322 case ExitCode::NotTerminated: |
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
669 MutexLocker lock(m_threadStateMutex); | 670 MutexLocker lock(m_threadStateMutex); |
670 return m_requestedToTerminate; | 671 return m_requestedToTerminate; |
671 } | 672 } |
672 | 673 |
673 ExitCode WorkerThread::getExitCodeForTesting() { | 674 ExitCode WorkerThread::getExitCodeForTesting() { |
674 MutexLocker lock(m_threadStateMutex); | 675 MutexLocker lock(m_threadStateMutex); |
675 return m_exitCode; | 676 return m_exitCode; |
676 } | 677 } |
677 | 678 |
678 } // namespace blink | 679 } // namespace blink |
OLD | NEW |