Ensure that connection is only used by one client
authorAdam Dickmeiss <adam@indexdata.dk>
Mon, 29 Mar 2010 13:01:33 +0000 (15:01 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Mon, 29 Mar 2010 13:01:33 +0000 (15:01 +0200)
While the host and thereby the connection is locked, we mark the
newly assigned client Client_Working. This is to prevent that one
connection gets used by two clients.

src/connection.c

index fecf51b..72c1260 100644 (file)
@@ -475,6 +475,9 @@ int client_prep_connection(struct client *cl,
             connection_release(co);
             client_set_connection(cl, co);
             co->client = cl;
+            /* ensure that connection is only assigned to this client
+               by marking the client non Idle */
+            client_set_state(cl, Client_Working);
             yaz_mutex_leave(host->mutex);
             co->operation_timeout = operation_timeout;
             co->session_timeout = session_timeout;