Christian Kruse: Ein Regexp-Problem

Beitrag lesen

Hallo Christoph,

if(head.clients.clientnum > MAX_CLIENT_NUM) {
        fo_log(LOG_STD,__FILE__,__LINE__,"rejecting connection\n");
        writen(connfd,"507 Server has to many connections\n",35);
        close(connfd);
        pthread_mutex_unlock(&head.clients.lock);
      }

Ist aber sehr brutal.

Das habe ich jetzt abgeaendert. Da die Art des Problems ein
schlecht moegliches Timeslicing ist, habe ich jetzt einfach
den oberen Code-Block umgeaendert in

if(head.clients.clientnum > MAX_CLIENT_NUM) {
        fo_log(LOG_STD,__FILE__,__LINE__,"handling request directly...\n");
        handle_request((void *)connfd);
        pthread_mutex_unlock(&head.clients.lock);
      }

Damit sind zwei Sachen gegeben: ich *garantiere* dadurch,
dass an bestimmten Stellen Timeslicing moeglich ist und
zweitens kommen fuer die Zeit keine neuen Verbindungen dazu.

Gruesse,
 CK