[Midnightbsd-cvs] src [7768] trunk/lib/libmport/setting.c: run sql for settings on serial queue

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sat Aug 27 16:37:49 EDT 2016


Revision: 7768
          http://svnweb.midnightbsd.org/src/?rev=7768
Author:   laffer1
Date:     2016-08-27 16:37:49 -0400 (Sat, 27 Aug 2016)
Log Message:
-----------
run sql for settings on serial queue

Modified Paths:
--------------
    trunk/lib/libmport/setting.c

Modified: trunk/lib/libmport/setting.c
===================================================================
--- trunk/lib/libmport/setting.c	2016-08-27 20:28:24 UTC (rev 7767)
+++ trunk/lib/libmport/setting.c	2016-08-27 20:37:49 UTC (rev 7768)
@@ -37,7 +37,7 @@
 MPORT_PUBLIC_API char *
 mport_setting_get(mportInstance *mport, const char *name) {
     sqlite3_stmt *stmt;
-    char *val;
+    __block char *val = NULL;
 
     if (name == NULL)
         return NULL;
@@ -47,21 +47,21 @@
 		return NULL;
 	}
 
-    switch (sqlite3_step(stmt)) {
-        case SQLITE_ROW:
-            val = strdup(sqlite3_column_text(stmt, 0));
-            sqlite3_finalize(stmt);
-            break;
-        case SQLITE_DONE:
-            SET_ERROR(MPORT_ERR_FATAL, "Setting not found.");
-            sqlite3_finalize(stmt);
-            return NULL;
-            break; /* NOT REACHED */
-        default:
-            SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
-            sqlite3_finalize(stmt);
-            return NULL;
-    }
+	dispatch_sync(mportSQLSerial, ^{
+	    switch (sqlite3_step(stmt)) {
+		    case SQLITE_ROW:
+			    val = strdup((const char *) sqlite3_column_text(stmt, 0));
+		        sqlite3_finalize(stmt);
+		        break;
+		    case SQLITE_DONE:
+			    SET_ERROR(MPORT_ERR_FATAL, "Setting not found.");
+		        sqlite3_finalize(stmt);
+		        break;
+		    default:
+			    SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
+		        sqlite3_finalize(stmt);
+	    }
+	});
 
     return val;
 }



More information about the Midnightbsd-cvs mailing list