Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(959)

Unified Diff: third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.cpp

Issue 1909813002: Enable per thread heap for database thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.cpp
diff --git a/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.cpp b/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.cpp
index 6d400e6f0168b5d42dfa8ab67d0229005ecd4800..d1f589f8623c34ca7faacb7bc25cd7454ebd56c0 100644
--- a/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.cpp
+++ b/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.cpp
@@ -356,6 +356,7 @@ SQLTransactionBackend::SQLTransactionBackend(Database* db, SQLTransaction* front
, m_readOnly(readOnly)
, m_hasVersionMismatch(false)
{
+ DCHECK(isMainThread());
ASSERT(m_database);
m_frontend->setBackend(this);
m_requestedState = SQLTransactionState::AcquireLock;
@@ -368,11 +369,8 @@ SQLTransactionBackend::~SQLTransactionBackend()
DEFINE_TRACE(SQLTransactionBackend)
{
- visitor->trace(m_frontend);
- visitor->trace(m_currentStatementBackend);
visitor->trace(m_database);
visitor->trace(m_wrapper);
- visitor->trace(m_statementQueue);
}
void SQLTransactionBackend::doCleanup()
@@ -467,12 +465,14 @@ SQLTransactionBackend::StateFunction SQLTransactionBackend::stateFunctionFor(SQL
void SQLTransactionBackend::enqueueStatementBackend(SQLStatementBackend* statementBackend)
{
+ DCHECK(isMainThread());
MutexLocker locker(m_statementMutex);
m_statementQueue.append(statementBackend);
}
void SQLTransactionBackend::computeNextStateAndCleanupIfNeeded()
{
+ DCHECK(database()->getDatabaseContext()->databaseThread()->isDatabaseThread());
// Only honor the requested state transition if we're not supposed to be
// cleaning up and shutting down:
if (m_database->opened()) {
@@ -520,6 +520,7 @@ void SQLTransactionBackend::performNextStep()
void SQLTransactionBackend::executeSQL(SQLStatement* statement,
const String& sqlStatement, const Vector<SQLValue>& arguments, int permissions)
{
+ DCHECK(isMainThread());
enqueueStatementBackend(SQLStatementBackend::create(statement, sqlStatement, arguments, permissions));
}
@@ -549,6 +550,7 @@ void SQLTransactionBackend::lockAcquired()
SQLTransactionState SQLTransactionBackend::openTransactionAndPreflight()
{
+ DCHECK(database()->getDatabaseContext()->databaseThread()->isDatabaseThread());
ASSERT(!m_database->sqliteDatabase().transactionInProgress());
ASSERT(m_lockAcquired);
@@ -615,6 +617,7 @@ SQLTransactionState SQLTransactionBackend::openTransactionAndPreflight()
SQLTransactionState SQLTransactionBackend::runStatements()
{
+ DCHECK(database()->getDatabaseContext()->databaseThread()->isDatabaseThread());
ASSERT(m_lockAcquired);
SQLTransactionState nextState;
@@ -649,6 +652,7 @@ SQLTransactionState SQLTransactionBackend::runStatements()
void SQLTransactionBackend::getNextStatement()
{
+ DCHECK(database()->getDatabaseContext()->databaseThread()->isDatabaseThread());
m_currentStatementBackend = nullptr;
MutexLocker locker(m_statementMutex);

Powered by Google App Engine
This is Rietveld 408576698