evolution-data-server/bnc-441542-fix-translock.patch

33 lines
1014 B
Diff

--- camel/camel-db.c
+++ camel/camel-db.c
@@ -190,7 +190,8 @@ camel_db_begin_transaction (CamelDB *cdb, CamelException *ex)
{
if (!cdb)
return -1;
- g_static_rec_mutex_lock (&trans_lock);
+ if (g_getenv("SQLITE_TRANSLOCK"))
+ g_static_rec_mutex_lock (&trans_lock);
g_mutex_lock (cdb->lock);
return (cdb_sql_exec (cdb->db, "BEGIN", ex));
@@ -207,7 +208,8 @@ camel_db_end_transaction (CamelDB *cdb, CamelException *ex)
ret = cdb_sql_exec (cdb->db, "COMMIT", ex);
END;
g_mutex_unlock (cdb->lock);
- g_static_rec_mutex_unlock (&trans_lock);
+ if (g_getenv("SQLITE_TRANSLOCK"))
+ g_static_rec_mutex_unlock (&trans_lock);
CAMEL_DB_RELEASE_SQLITE_MEMORY;
@@ -221,7 +223,8 @@ camel_db_abort_transaction (CamelDB *cdb, CamelException *ex)
ret = cdb_sql_exec (cdb->db, "ROLLBACK", ex);
g_mutex_unlock (cdb->lock);
- g_static_rec_mutex_unlock (&trans_lock);
+ if (g_getenv("SQLITE_TRANSLOCK"))
+ g_static_rec_mutex_unlock (&trans_lock);
CAMEL_DB_RELEASE_SQLITE_MEMORY;
return ret;