Chromium Code Reviews| 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 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 146 // Thread owns the microtask runner; reference remains | 146 // Thread owns the microtask runner; reference remains |
| 147 // valid for the lifetime of this object. | 147 // valid for the lifetime of this object. |
| 148 WorkerThread* m_workerThread; | 148 WorkerThread* m_workerThread; |
| 149 }; | 149 }; |
| 150 | 150 |
| 151 static Mutex& threadSetMutex() { | 151 static Mutex& threadSetMutex() { |
| 152 DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, new Mutex); | 152 DEFINE_THREAD_SAFE_STATIC_LOCAL(Mutex, mutex, new Mutex); |
| 153 return mutex; | 153 return mutex; |
| 154 } | 154 } |
| 155 | 155 |
| 156 static HashSet<WorkerThread*>& workerThreads() { | |
| 157 DEFINE_STATIC_LOCAL(HashSet<WorkerThread*>, threads, ()); | |
| 158 return threads; | |
| 159 } | |
| 160 | |
| 161 WorkerThreadLifecycleContext::WorkerThreadLifecycleContext() { | 156 WorkerThreadLifecycleContext::WorkerThreadLifecycleContext() { |
| 162 DCHECK(isMainThread()); | 157 DCHECK(isMainThread()); |
| 163 } | 158 } |
| 164 | 159 |
| 165 WorkerThreadLifecycleContext::~WorkerThreadLifecycleContext() { | 160 WorkerThreadLifecycleContext::~WorkerThreadLifecycleContext() { |
| 166 DCHECK(isMainThread()); | 161 DCHECK(isMainThread()); |
| 167 } | 162 } |
| 168 | 163 |
| 169 void WorkerThreadLifecycleContext::notifyContextDestroyed() { | 164 void WorkerThreadLifecycleContext::notifyContextDestroyed() { |
| 170 DCHECK(isMainThread()); | 165 DCHECK(isMainThread()); |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 313 WorkerInspectorController* WorkerThread::workerInspectorController() { | 308 WorkerInspectorController* WorkerThread::workerInspectorController() { |
| 314 DCHECK(isCurrentThread()); | 309 DCHECK(isCurrentThread()); |
| 315 return m_workerInspectorController.get(); | 310 return m_workerInspectorController.get(); |
| 316 } | 311 } |
| 317 | 312 |
| 318 unsigned WorkerThread::workerThreadCount() { | 313 unsigned WorkerThread::workerThreadCount() { |
| 319 MutexLocker lock(threadSetMutex()); | 314 MutexLocker lock(threadSetMutex()); |
| 320 return workerThreads().size(); | 315 return workerThreads().size(); |
| 321 } | 316 } |
| 322 | 317 |
| 318 HashSet<WorkerThread*>& WorkerThread::workerThreads() { | |
|
nhiroki
2016/10/17 12:01:08
DCHECK(isMainThread());
leonhsl(Using Gerrit)
2016/10/18 10:03:52
Done.
| |
| 319 DEFINE_STATIC_LOCAL(HashSet<WorkerThread*>, threads, ()); | |
| 320 return threads; | |
| 321 } | |
| 322 | |
| 323 PlatformThreadId WorkerThread::platformThreadId() { | 323 PlatformThreadId WorkerThread::platformThreadId() { |
| 324 if (!m_requestedToStart) | 324 if (!m_requestedToStart) |
| 325 return 0; | 325 return 0; |
| 326 return workerBackingThread().backingThread().platformThread().threadId(); | 326 return workerBackingThread().backingThread().platformThread().threadId(); |
| 327 } | 327 } |
| 328 | 328 |
| 329 bool WorkerThread::isForciblyTerminated() { | 329 bool WorkerThread::isForciblyTerminated() { |
| 330 MutexLocker lock(m_threadStateMutex); | 330 MutexLocker lock(m_threadStateMutex); |
| 331 switch (m_exitCode) { | 331 switch (m_exitCode) { |
| 332 case ExitCode::NotTerminated: | 332 case ExitCode::NotTerminated: |
| (...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 685 MutexLocker lock(m_threadStateMutex); | 685 MutexLocker lock(m_threadStateMutex); |
| 686 return m_requestedToTerminate; | 686 return m_requestedToTerminate; |
| 687 } | 687 } |
| 688 | 688 |
| 689 ExitCode WorkerThread::getExitCodeForTesting() { | 689 ExitCode WorkerThread::getExitCodeForTesting() { |
| 690 MutexLocker lock(m_threadStateMutex); | 690 MutexLocker lock(m_threadStateMutex); |
| 691 return m_exitCode; | 691 return m_exitCode; |
| 692 } | 692 } |
| 693 | 693 |
| 694 } // namespace blink | 694 } // namespace blink |
| OLD | NEW |