ciao a tutti, di solito su questo forum riesco a trovare sempre una risposta ai miei problemi.. speriamo che anche questa volta sia così..

sto creando un server multi-thread.

Codice PHP:
    while (1) {
        if ( (
fd2 accept(fd1, (struct sockaddr*) &client_addr, &client_len)) <= )
            
write(2"Errore Accept\n"strlen("Errore Accept\n"));
        else {
      
sprintf(buf"FD2= %d\n"fd2);
        
write(2bufstrlen(buf) );
            if (
pthread_create(&tidNULLclient, &fd2))
    
write(2"Errore pthread_create\n"strlen("Errore pthread_create\n"));
            else {
                
sprintf(buf"#Connessione: %d; Thread client: %u; Numero client connessi: %d#\n"fd2, (unsigned int)tidCONT 1);
                
write(1bufstrlen(buf));
                
                
            }
        }
        
sleep(1);
    }

  
close(fd1);

questa parte di codice è quella che crea il thread nuovo...il problema che ho è che il canale di comunicazione fd2 cambia di valore prima che il thread ne abbia preso il valore, per risolvere (artigianalmente) ho inserito quello sleep(1) che ovviamente è bruttissimo da vedere.

come posso risolvere in maniera corretta?