diff options
Diffstat (limited to 'WebCore/storage/DatabaseThread.cpp')
| -rw-r--r-- | WebCore/storage/DatabaseThread.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/WebCore/storage/DatabaseThread.cpp b/WebCore/storage/DatabaseThread.cpp index 40c83ee..12e9251 100644 --- a/WebCore/storage/DatabaseThread.cpp +++ b/WebCore/storage/DatabaseThread.cpp @@ -91,13 +91,8 @@ void* DatabaseThread::databaseThread() } AutodrainedPool pool; - while (true) { - RefPtr<DatabaseTask> task; - if (!m_queue.waitForMessage(task)) - break; - + while (OwnPtr<DatabaseTask> task = m_queue.waitForMessage()) { task->performTask(); - pool.cycle(); } @@ -142,12 +137,12 @@ void DatabaseThread::recordDatabaseClosed(Database* database) m_openDatabaseSet.remove(database); } -void DatabaseThread::scheduleTask(PassRefPtr<DatabaseTask> task) +void DatabaseThread::scheduleTask(PassOwnPtr<DatabaseTask> task) { m_queue.append(task); } -void DatabaseThread::scheduleImmediateTask(PassRefPtr<DatabaseTask> task) +void DatabaseThread::scheduleImmediateTask(PassOwnPtr<DatabaseTask> task) { m_queue.prepend(task); } @@ -155,7 +150,7 @@ void DatabaseThread::scheduleImmediateTask(PassRefPtr<DatabaseTask> task) class SameDatabasePredicate { public: SameDatabasePredicate(const Database* database) : m_database(database) { } - bool operator()(RefPtr<DatabaseTask>& task) const { return task->database() == m_database; } + bool operator()(DatabaseTask* task) const { return task->database() == m_database; } private: const Database* m_database; }; |
