Release on the calling thread so when the connections destructor is called, it
is not on the background thread.
r=asuth
a=dbaron
--HG--
extra : rebase_source : c546987a611b92ca319f17faf4163a3f5bc257f5
(was "test_browserGlue_corrupt_nobackup_default.js, test_browserGlue_corrupt_nobackup.js, test_browserGlue_shutdown.js randomly crash")
Fixes a race condition with asynchronous statements that causes a crash. We do
not always have access to the background thread, so we should not assume we
always can get it.
Stop calling any SQLite functions that would acquire the database mutex inside
Connection::ExecuteAsync. Additionally, do not actually bind parameters when
the binding functions are called, but rather when we execute (so for async
statements, that will happen on the background thread creating no mutex
contention with the main thread).
r=asuth
r=sdwilsh
Moving JSValStorageStatementBinder to mozStoragePrivateHelpers as bindJSValue
storage/src/mozStorageStatementParams.h: At global scope:
storage/src/mozStorageStatementParams.h:78: warning: ‘PRBool mozilla::storage::JSValStorageStatementBinder(JSContext*, mozIStorageStatement*, int, jsval)’ defined but not used
storage/src/mozStorageStatementParams.h:78: warning: ‘PRBool mozilla::storage::JSValStorageStatementBinder(JSContext*, mozIStorageStatement*, int, jsval)’ defined but not used
You get this once for each file that includes a header that defines a static function which is not used in that file.
Improves the asynchronous API by allowing multiple parameters to be bound before
executing it. The statement is then executed with each set of parameters
asynchronously.
r=asuth
sr=vlad
Improves the asynchronous API by allowing multiple parameters to be bound before
executing it. The statement is then executed with each set of parameters
asynchronously.
r=asuth
sr=vlad
--HG--
rename : storage/test/unit/test_storage_statement_executeAsync.js => storage/test/unit/test_statement_executeAsync.js
Renames the files to be more representative to what they actually contain. This
also updates the files to follow the storage style guidelines.
r=asuth
--HG--
rename : storage/src/mozStorageEvents.cpp => storage/src/mozStorageAsyncStatementExecution.cpp
rename : storage/src/mozStorageEvents.h => storage/src/mozStorageAsyncStatementExecution.h
Better reflects the contents of the file. Also updated the file to follow the
storage style guidelines.
r=asuth
--HG--
rename : storage/src/mozStorageValueArray.cpp => storage/src/mozStorageArgValueArray.cpp
rename : storage/src/mozStorageValueArray.h => storage/src/mozStorageArgValueArray.h
We don't really want to give this pointer out to consumers since we track some
state, and if they call SQLite functions on it, can cause our internal state to
be inaccurate.
r=asuth
This changeset adds a new error result for storage (NS_ERROR_STORAGE_BUSY) that
maps directly to when SQLite would return SQLITE_BUSY.
r=asuth
--HG--
rename : storage/src/mozStorage.h => storage/src/mozStoragePrivateHelpers.h