| 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 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 if (m_workerContext) { | 251 if (m_workerContext) { |
| 252 m_workerContext->script()->scheduleExecutionTermination(); | 252 m_workerContext->script()->scheduleExecutionTermination(); |
| 253 | 253 |
| 254 DatabaseManager::manager().interruptAllDatabasesForContext(m_workerConte
xt.get()); | 254 DatabaseManager::manager().interruptAllDatabasesForContext(m_workerConte
xt.get()); |
| 255 m_runLoop.postTaskAndTerminate(WorkerThreadShutdownStartTask::create()); | 255 m_runLoop.postTaskAndTerminate(WorkerThreadShutdownStartTask::create()); |
| 256 return; | 256 return; |
| 257 } | 257 } |
| 258 m_runLoop.terminate(); | 258 m_runLoop.terminate(); |
| 259 } | 259 } |
| 260 | 260 |
| 261 bool WorkerThread::isCurrentThread() const |
| 262 { |
| 263 return m_threadID == currentThread(); |
| 264 } |
| 265 |
| 261 class ReleaseFastMallocFreeMemoryTask : public ScriptExecutionContext::Task { | 266 class ReleaseFastMallocFreeMemoryTask : public ScriptExecutionContext::Task { |
| 262 virtual void performTask(ScriptExecutionContext*) OVERRIDE { WTF::releaseFas
tMallocFreeMemory(); } | 267 virtual void performTask(ScriptExecutionContext*) OVERRIDE { WTF::releaseFas
tMallocFreeMemory(); } |
| 263 }; | 268 }; |
| 264 | 269 |
| 265 void WorkerThread::releaseFastMallocFreeMemoryInAllThreads() | 270 void WorkerThread::releaseFastMallocFreeMemoryInAllThreads() |
| 266 { | 271 { |
| 267 MutexLocker lock(threadSetMutex()); | 272 MutexLocker lock(threadSetMutex()); |
| 268 HashSet<WorkerThread*>& threads = workerThreads(); | 273 HashSet<WorkerThread*>& threads = workerThreads(); |
| 269 HashSet<WorkerThread*>::iterator end = threads.end(); | 274 HashSet<WorkerThread*>::iterator end = threads.end(); |
| 270 for (HashSet<WorkerThread*>::iterator it = threads.begin(); it != end; ++it) | 275 for (HashSet<WorkerThread*>::iterator it = threads.begin(); it != end; ++it) |
| 271 (*it)->runLoop().postTask(adoptPtr(new ReleaseFastMallocFreeMemoryTask))
; | 276 (*it)->runLoop().postTask(adoptPtr(new ReleaseFastMallocFreeMemoryTask))
; |
| 272 } | 277 } |
| 273 | 278 |
| 274 } // namespace WebCore | 279 } // namespace WebCore |
| OLD | NEW |