[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