summaryrefslogtreecommitdiff
path: root/src/test_server.c
diff options
context:
space:
mode:
authorHans-Christoph Steiner <hans@eds.org>2014-10-16 22:51:43 -0400
committerHans-Christoph Steiner <hans@eds.org>2014-10-16 22:51:43 -0400
commit9f67c0520ea0d5f11a190197cdf746c512db4ce4 (patch)
treec88a33f01f20a3d13a09594f114fffacebd0d1a4 /src/test_server.c
parentee20336e9c78d2e3782c8d096b9ab4f6ca8ce95f (diff)
parent569c6676a6ddb0ff73821d7693b5e18ddef809b9 (diff)
Merge tag 'upstream/3.2.0'
Upstream version 3.2.0 # gpg: Signature made Thu 16 Oct 2014 10:51:39 PM EDT using RSA key ID 374BBE81 # gpg: Good signature from "Hans-Christoph Steiner <hans@guardianproject.info>" # gpg: aka "Hans-Christoph Steiner <hans@eds.org>" # gpg: aka "Hans-Christoph Steiner <hans@at.or.at>" # gpg: aka "[jpeg image of size 5408]"
Diffstat (limited to 'src/test_server.c')
-rw-r--r--src/test_server.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/test_server.c b/src/test_server.c
index ed0818e..4eb1cf1 100644
--- a/src/test_server.c
+++ b/src/test_server.c
@@ -473,6 +473,32 @@ void sqlite3_server_start(void){
}
/*
+** A wrapper around sqlite3_server() that decrements the int variable
+** pointed to by the first argument after the sqlite3_server() call
+** returns.
+*/
+static void *serverWrapper(void *pnDecr){
+ void *p = sqlite3_server(0);
+ (*(int*)pnDecr)--;
+ return p;
+}
+
+/*
+** This function is the similar to sqlite3_server_start(), except that
+** the integer pointed to by the first argument is decremented when
+** the server thread exits.
+*/
+void sqlite3_server_start2(int *pnDecr){
+ pthread_t x;
+ int rc;
+ g.serverHalt = 0;
+ rc = pthread_create(&x, 0, serverWrapper, (void*)pnDecr);
+ if( rc==0 ){
+ pthread_detach(x);
+ }
+}
+
+/*
** If a server thread is running, then stop it. If no server is
** running, this routine is effectively a no-op.
**