From: Wilfried Göesgens Date: Sun, 14 Feb 2010 11:34:41 +0000 (+0000) Subject: * copy the FD so we're safe of other threads setting it to -1 meanwhile X-Git-Tag: v7.86~429 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=29ded936989eeb6d820ac37d8d526340bea66671 * copy the FD so we're safe of other threads setting it to -1 meanwhile --- diff --git a/citadel/sysdep.c b/citadel/sysdep.c index bf8a7adf1..33c42696d 100644 --- a/citadel/sysdep.c +++ b/citadel/sysdep.c @@ -971,14 +971,16 @@ do_select: force_purge = 0; begin_critical_section(S_SESSION_TABLE); for (ptr = ContextList; ptr != NULL; ptr = ptr->next) { + int client_socket; + client_socket = ptr->client_socket; /* Dont select on dead sessions only truly idle ones */ if ((ptr->state == CON_IDLE) && (CC->kill_me == 0) && - (ptr->client_socket != -1)) + (client_socket != -1)) { - FD_SET(ptr->client_socket, &readfds); - if (ptr->client_socket > highest) - highest = ptr->client_socket; + FD_SET(client_socket, &readfds); + if (client_socket > highest) + highest = client_socket; } if ((bind_me == NULL) && (ptr->state == CON_READY)) { bind_me = ptr;