MessageQueue should use a Deque of OwnPtrs
[WebKit-https.git] / Source / WebCore / fileapi / FileThread.cpp
index 4d55630..4dd95cf 100644 (file)
 
 #include "config.h"
 
-#if ENABLE(BLOB) || ENABLE(FILE_SYSTEM)
+#if ENABLE(BLOB)
 
 #include "FileThread.h"
 
-#include "AutodrainedPool.h"
 #include "Logging.h"
+#include <wtf/AutodrainedPool.h>
 
 namespace WebCore {
 
@@ -72,7 +72,7 @@ void FileThread::postTask(PassOwnPtr<Task> task)
 class SameInstancePredicate {
 public:
     SameInstancePredicate(const void* instance) : m_instance(instance) { }
-    bool operator()(FileThread::Task* task) const { return task->instance() == m_instance; }
+    bool operator()(const OwnPtr<FileThread::Task>& task) const { return task->instance() == m_instance; }
 private:
     const void* m_instance;
 };
@@ -83,13 +83,13 @@ void FileThread::unscheduleTasks(const void* instance)
     m_queue.removeIf(predicate);
 }
 
-void* FileThread::fileThreadStart(void* arg)
+void FileThread::fileThreadStart(void* arg)
 {
     FileThread* fileThread = static_cast<FileThread*>(arg);
-    return fileThread->runLoop();
+    fileThread->runLoop();
 }
 
-void* FileThread::runLoop()
+void FileThread::runLoop()
 {
     {
         // Wait for FileThread::start() to complete to have m_threadID
@@ -98,10 +98,10 @@ void* FileThread::runLoop()
         LOG(FileAPI, "Started FileThread %p", this);
     }
 
-    AutodrainedPool pool;
     while (OwnPtr<Task> task = m_queue.waitForMessage()) {
+        AutodrainedPool pool;
+
         task->performTask();
-        pool.cycle();
     }
 
     LOG(FileAPI, "About to detach thread %i and clear the ref to FileThread %p, which currently has %i ref(s)", m_threadID, this, refCount());
@@ -110,10 +110,8 @@ void* FileThread::runLoop()
 
     // Clear the self refptr, possibly resulting in deletion
     m_selfRef = 0;
-
-    return 0;
 }
 
 } // namespace WebCore
 
-#endif // ENABLE(BLOB) || ENABLE(FILE_SYSTEM)
+#endif // ENABLE(BLOB)