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 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
396 | 396 |
397 // Signal the thread to notify that the thread's stopping. | 397 // Signal the thread to notify that the thread's stopping. |
398 if (m_shutdownEvent) | 398 if (m_shutdownEvent) |
399 m_shutdownEvent->signal(); | 399 m_shutdownEvent->signal(); |
400 | 400 |
401 if (!m_workerGlobalScope) | 401 if (!m_workerGlobalScope) |
402 return; | 402 return; |
403 | 403 |
404 // Ensure that tasks are being handled by thread event loop. If script execu
tion weren't forbidden, a while(1) loop in JS could keep the thread alive foreve
r. | 404 // Ensure that tasks are being handled by thread event loop. If script execu
tion weren't forbidden, a while(1) loop in JS could keep the thread alive foreve
r. |
405 m_workerGlobalScope->script()->scheduleExecutionTermination(); | 405 m_workerGlobalScope->script()->scheduleExecutionTermination(); |
406 m_workerGlobalScope->wasRequestedToTerminate(); | |
407 InspectorInstrumentation::didKillAllExecutionContextTasks(m_workerGlobalScop
e.get()); | 406 InspectorInstrumentation::didKillAllExecutionContextTasks(m_workerGlobalScop
e.get()); |
408 m_debuggerMessageQueue.kill(); | 407 m_debuggerMessageQueue.kill(); |
409 postTask(WorkerThreadShutdownStartTask::create()); | 408 postTask(WorkerThreadShutdownStartTask::create()); |
410 } | 409 } |
411 | 410 |
412 void WorkerThread::terminateAndWaitForAllWorkers() | 411 void WorkerThread::terminateAndWaitForAllWorkers() |
413 { | 412 { |
414 // Keep this lock to prevent WorkerThread instances from being destroyed. | 413 // Keep this lock to prevent WorkerThread instances from being destroyed. |
415 MutexLocker lock(threadSetMutex()); | 414 MutexLocker lock(threadSetMutex()); |
416 HashSet<WorkerThread*> threads = workerThreads(); | 415 HashSet<WorkerThread*> threads = workerThreads(); |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
490 InspectorInstrumentation::didLeaveNestedRunLoop(m_workerGlobalScope.get()); | 489 InspectorInstrumentation::didLeaveNestedRunLoop(m_workerGlobalScope.get()); |
491 } | 490 } |
492 | 491 |
493 void WorkerThread::setWorkerInspectorController(WorkerInspectorController* worke
rInspectorController) | 492 void WorkerThread::setWorkerInspectorController(WorkerInspectorController* worke
rInspectorController) |
494 { | 493 { |
495 MutexLocker locker(m_workerInspectorControllerMutex); | 494 MutexLocker locker(m_workerInspectorControllerMutex); |
496 m_workerInspectorController = workerInspectorController; | 495 m_workerInspectorController = workerInspectorController; |
497 } | 496 } |
498 | 497 |
499 } // namespace blink | 498 } // namespace blink |
OLD | NEW |