Merge remote-tracking branch 'origin/fastpath'

* origin/fastpath:
  change sqlite3 default threading mode to no-mutex, disable memory statistics, finalize prepared statement before exitting logger.
This commit is contained in:
Robin Sommer 2013-05-17 13:49:52 -07:00
commit b11a397168
5 changed files with 17 additions and 4 deletions

View file

@ -1,4 +1,9 @@
2.1-654 | 2013-05-17 13:49:52 -0700
* Tweaks to sqlite3 configuration to address threading issues.
(Bernhard Amann)
2.1-651 | 2013-05-17 13:37:16 -0700 2.1-651 | 2013-05-17 13:37:16 -0700
* Fix uninitialized DPM member. (Jon Siwek) * Fix uninitialized DPM member. (Jon Siwek)

View file

@ -1 +1 @@
2.1-651 2.1-654

View file

@ -1,3 +1,6 @@
# define SQLITE_THREADSAFE 2
# define SQLITE_DEFAULT_MEMSTATUS 0
/****************************************************************************** /******************************************************************************
** This file is an amalgamation of many separate C source files from SQLite ** This file is an amalgamation of many separate C source files from SQLite
** version 3.7.16.2. By combining all the individual C code files into this ** version 3.7.16.2. By combining all the individual C code files into this

View file

@ -35,13 +35,17 @@ SQLite::SQLite(WriterFrontend* frontend) : WriterBackend(frontend)
db = 0; db = 0;
io = new AsciiFormatter(this, AsciiFormatter::SeparatorInfo(set_separator, unset_field, empty_field)); io = new AsciiFormatter(this, AsciiFormatter::SeparatorInfo(set_separator, unset_field, empty_field));
st = 0;
} }
SQLite::~SQLite() SQLite::~SQLite()
{ {
if ( db != 0 ) if ( db != 0 )
{ {
sqlite3_close(db); sqlite3_finalize(st);
if ( ! sqlite3_close(db) )
Error("Sqlite could not close connection");
db = 0; db = 0;
} }

View file

@ -113,8 +113,9 @@ private:
inline static void safe_lock(pthread_mutex_t* mutex) inline static void safe_lock(pthread_mutex_t* mutex)
{ {
if ( pthread_mutex_lock(mutex) != 0 ) int res = pthread_mutex_lock(mutex);
reporter->FatalErrorWithCore("cannot lock mutex"); if ( res != 0 )
reporter->FatalErrorWithCore("cannot lock mutex: %d(%s)", res, strerror(res));
} }
inline static void safe_unlock(pthread_mutex_t* mutex) inline static void safe_unlock(pthread_mutex_t* mutex)