Index: Source/modules/webdatabase/DatabaseThread.cpp |
diff --git a/Source/modules/webdatabase/DatabaseThread.cpp b/Source/modules/webdatabase/DatabaseThread.cpp |
index d074e362041c67f51eb6083f0b07a6cdccfb2383..80574b616991586e6efc910279f87e6d487b3ea9 100644 |
--- a/Source/modules/webdatabase/DatabaseThread.cpp |
+++ b/Source/modules/webdatabase/DatabaseThread.cpp |
@@ -114,6 +114,7 @@ void DatabaseThread::cleanupDatabaseThread() |
for (HeapHashSet<Member<Database> >::iterator it = openSetCopy.begin(); it != end; ++it) |
(*it)->close(); |
} |
+ m_openDatabaseSet.clear(); |
m_thread->postTask(new Task(WTF::bind(&DatabaseThread::cleanupDatabaseThreadCompleted, this))); |
haraken
2014/10/15 08:20:18
Just help me understand: Why do we need to post th
tkent
2014/10/15 08:41:22
I don't remember the reason. Anyway, it's unrelat
|
} |
@@ -130,7 +131,9 @@ void DatabaseThread::recordDatabaseOpen(Database* database) |
ASSERT(isDatabaseThread()); |
ASSERT(database); |
ASSERT(!m_openDatabaseSet.contains(database)); |
- m_openDatabaseSet.add(database); |
+ MutexLocker lock(m_terminationRequestedMutex); |
+ if (!m_terminationRequested) |
+ m_openDatabaseSet.add(database); |
} |
void DatabaseThread::recordDatabaseClosed(Database* database) |