No lock on host->mutex for non-timeout events
authorAdam Dickmeiss <adam@indexdata.dk>
Tue, 20 Apr 2010 11:10:58 +0000 (13:10 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Tue, 20 Apr 2010 11:11:24 +0000 (13:11 +0200)
In connection_handler.

src/connection.c

index 5b4a127..ac18130 100644 (file)
@@ -250,6 +250,7 @@ static void connection_handler(IOCHAN iochan, int event)
            package.. We will just close the connection */
         yaz_log(YLOG_LOG, "timeout connection %p event=%d", co, event);
         connection_destroy(co);
+        yaz_mutex_leave(host->mutex);
     }
     else if (event & EVENT_TIMEOUT)
     {
@@ -269,16 +270,17 @@ static void connection_handler(IOCHAN iochan, int event)
         {
             yaz_log(YLOG_LOG,  "ignore timeout %s", client_get_url(cl));
         }
+        yaz_mutex_leave(host->mutex);
     }
     else
     {
+        yaz_mutex_leave(host->mutex);
         non_block_events(co);
 
         ZOOM_connection_fire_event_socket(co->link, event);
         
         non_block_events(co);
     }
-    yaz_mutex_leave(host->mutex);
 }