aboutsummaryrefslogtreecommitdiff
path: root/ext/async/sqlite3async.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/async/sqlite3async.c')
-rw-r--r--ext/async/sqlite3async.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/ext/async/sqlite3async.c b/ext/async/sqlite3async.c
index 4ab39cac3..b6f4a4bd3 100644
--- a/ext/async/sqlite3async.c
+++ b/ext/async/sqlite3async.c
@@ -1636,6 +1636,7 @@ void sqlite3async_run(void){
** Control/configure the asynchronous IO system.
*/
int sqlite3async_control(int op, ...){
+ int rc = SQLITE_OK;
va_list ap;
va_start(ap, op);
switch( op ){
@@ -1645,7 +1646,8 @@ int sqlite3async_control(int op, ...){
&& eWhen!=SQLITEASYNC_HALT_NOW
&& eWhen!=SQLITEASYNC_HALT_IDLE
){
- return SQLITE_MISUSE;
+ rc = SQLITE_MISUSE;
+ break;
}
async.eHalt = eWhen;
async_mutex_enter(ASYNC_MUTEX_QUEUE);
@@ -1657,7 +1659,8 @@ int sqlite3async_control(int op, ...){
case SQLITEASYNC_DELAY: {
int iDelay = va_arg(ap, int);
if( iDelay<0 ){
- return SQLITE_MISUSE;
+ rc = SQLITE_MISUSE;
+ break;
}
async.ioDelay = iDelay;
break;
@@ -1668,7 +1671,8 @@ int sqlite3async_control(int op, ...){
async_mutex_enter(ASYNC_MUTEX_QUEUE);
if( async.nFile || async.pQueueFirst ){
async_mutex_leave(ASYNC_MUTEX_QUEUE);
- return SQLITE_MISUSE;
+ rc = SQLITE_MISUSE;
+ break;
}
async.bLockFiles = bLock;
async_mutex_leave(ASYNC_MUTEX_QUEUE);
@@ -1692,9 +1696,11 @@ int sqlite3async_control(int op, ...){
}
default:
- return SQLITE_ERROR;
+ rc = SQLITE_ERROR;
+ break;
}
- return SQLITE_OK;
+ va_end(ap);
+ return rc;
}
#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_ASYNCIO) */