2008-07-25 Srinivasa Ragavan <sragavan@novell.com>
+ ** Fix for bug #544491
+
+ * camel/camel-db.c: Lock while 2 thread try to access same folder's
+ table using same handle.
+
+2008-07-25 Srinivasa Ragavan <sragavan@novell.com>
+
* camel/camel-search-sql.c: Further improve search.
2008-07-25 Srinivasa Ragavan <sragavan@novell.com>
int ret;
if (!cdb)
- return TRUE;
+ return TRUE;
g_mutex_lock (cdb->lock);
d(g_print("Executing: %s\n", stmt));
int ret = -1;
char *errmsg = NULL;
+ g_mutex_lock (cdb->lock);
ret = sqlite3_exec(cdb->db, query, count_cb, count, &errmsg);
while (ret == SQLITE_BUSY || ret == SQLITE_LOCKED) {
if (errmsg) {
ret = sqlite3_exec (cdb->db, query, count_cb, count, &errmsg);
}
-
+ g_mutex_unlock (cdb->lock);
+
CAMEL_DB_RELEASE_SQLITE_MEMORY;
if (ret != SQLITE_OK) {
return TRUE;
d(g_print ("\n%s:\n%s \n", __FUNCTION__, stmt));
-
+ g_mutex_lock (cdb->lock);
ret = sqlite3_exec(cdb->db, stmt, callback, data, &errmsg);
while (ret == SQLITE_BUSY || ret == SQLITE_LOCKED) {
if (errmsg) {
ret = sqlite3_exec (cdb->db, stmt, callback, data, &errmsg);
}
-
+ g_mutex_unlock (cdb->lock);
CAMEL_DB_RELEASE_SQLITE_MEMORY;
if (ret != SQLITE_OK) {