Index: Source/modules/webdatabase/DatabaseContext.cpp |
diff --git a/Source/modules/webdatabase/DatabaseContext.cpp b/Source/modules/webdatabase/DatabaseContext.cpp |
index 456087abd8cf1966d3cf3df6aa1164b1affae824..b327f4c395b29d23963d714de3ca851644af63f4 100644 |
--- a/Source/modules/webdatabase/DatabaseContext.cpp |
+++ b/Source/modules/webdatabase/DatabaseContext.cpp |
@@ -165,6 +165,11 @@ DatabaseThread* DatabaseContext::databaseThread() |
return m_databaseThread.get(); |
} |
+bool DatabaseContext::databaseThreadAvailable() |
+{ |
+ return databaseThread() && !m_hasRequestedTermination; |
+} |
+ |
void DatabaseContext::stopDatabases() |
{ |
// Though we initiate termination of the DatabaseThread here in |
@@ -177,7 +182,7 @@ void DatabaseContext::stopDatabases() |
// m_databaseThread RefPtr destructor will deref and delete the |
// DatabaseThread. |
- if (m_databaseThread && !m_hasRequestedTermination) { |
+ if (databaseThreadAvailable()) { |
TaskSynchronizer sync; |
m_databaseThread->requestTermination(&sync); |
m_hasRequestedTermination = true; |