evolution-data-server r9181 - trunk/camel



Author: sragavan
Date: Thu Jul 24 19:56:51 2008
New Revision: 9181
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9181&view=rev

Log:
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.


Modified:
   trunk/camel/ChangeLog
   trunk/camel/camel-db.c

Modified: trunk/camel/camel-db.c
==============================================================================
--- trunk/camel/camel-db.c	(original)
+++ trunk/camel/camel-db.c	Thu Jul 24 19:56:51 2008
@@ -139,7 +139,7 @@
 		int ret;
 
 		if (!cdb)
-				return TRUE;
+			return TRUE;
 		g_mutex_lock (cdb->lock);
 
 		d(g_print("Executing: %s\n", stmt));
@@ -257,6 +257,7 @@
 	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) {
@@ -266,7 +267,8 @@
 
 		ret = sqlite3_exec (cdb->db, query, count_cb, count, &errmsg);
 	}
-
+	g_mutex_unlock (cdb->lock);
+	
 	CAMEL_DB_RELEASE_SQLITE_MEMORY;
 		
 	if (ret != SQLITE_OK) {
@@ -416,7 +418,7 @@
 		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) {
@@ -426,7 +428,7 @@
 
 		ret = sqlite3_exec (cdb->db, stmt, callback, data, &errmsg);
 	}
-
+	g_mutex_unlock (cdb->lock);
 	CAMEL_DB_RELEASE_SQLITE_MEMORY;
 		
   	if (ret != SQLITE_OK) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]