This removes the use of the shared mutex in AsyncExecuteStatements. We now rely
on PR_AtomicSet and the volatile keyword. This results in zero lock contention
between the calling thread and the background thread if cancel is ever called.
r=asuth
r=bent
sr=vlad
This fixes the code to use functions that expect milliseconds instead of
microseconds, and updates to use the new TimeStamp and TimeDuration class.
r=asuth
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.
Part 1: Create helper objects to make using sqlite3_mutex safer and easier.
r=cjones
--HG--
rename : xpcom/tests/TestDeadlockDetector.cpp => storage/test/test_deadlock_detector.cpp
This changes the location bar's AutoComplete provider to use asynchronous
queries instead of synchronous ones. No more blocking the main thread FTW!
r=mak
r=Mardak
r=dietrich
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
This gets rid of the old, unused native code test file for storage. It adds two
more test files which test our C++ helper classes to ensure that they behave as
advertised. Also fixes a bug found in mozStorageTransaction that was uncovered
while writing these tests.
r=asuth
This exposes the templated nsIVariant implementation that storage uses
internally so that consumers can use it as well.
r=bsmedberg
--HG--
rename : storage/src/mozStorageVariant.cpp => storage/src/Variant.cpp
rename : storage/src/mozStorageVariant.h => storage/src/Variant.h
This adds support for blobs in variantToSQLiteT which means that functions can
no return blobs, as well as future consumers of variantToSQLiteT.
r=asuth
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
New filename better reflects current (and future) contents. Also updates the
files to follow the storage style guidelines.
r=asuth
--HG--
rename : storage/src/mozStorageUnicodeFunctions.cpp => storage/src/mozStorageSQLFunctions.cpp
rename : storage/src/mozStorageUnicodeFunctions.h => storage/src/mozStorageSQLFunctions.h