Index: WebCore/platform/sql/SQLiteDatabase.h |
=================================================================== |
--- WebCore/platform/sql/SQLiteDatabase.h (revision 55036) |
+++ WebCore/platform/sql/SQLiteDatabase.h (working copy) |
@@ -97,7 +97,7 @@ |
const char* lastErrorMsg(); |
sqlite3* sqlite3Handle() const { |
- ASSERT(currentThread() == m_openingThread); |
+ ASSERT(m_sharable || currentThread() == m_openingThread); |
return m_db; |
} |
@@ -108,6 +108,12 @@ |
void unlock(); |
bool isAutoCommitOn() const; |
+ // Set this flag to allow access from multiple threads. Not all multi-threaded accesses are safe! |
+ // See http://www.sqlite.org/cvstrac/wiki?p=MultiThreading for more info, and you must be running with compile flags and SQLite version appropriate |
+ // to your cross-thread uses. |
+ bool sharable() { return m_sharable; } |
+ void setSharable(bool sharable) { m_sharable = sharable; } |
+ |
private: |
static int authorizerFunction(void*, int, const char*, const char*, const char*, const char*); |
@@ -120,6 +126,7 @@ |
int m_pageSize; |
bool m_transactionInProgress; |
+ bool m_sharable; |
Mutex m_authorizerLock; |
RefPtr<DatabaseAuthorizer> m_authorizer; |