Grazie per l' Edit, nel mio caso SOMAXCONN è il numero massimo di connessioni, la variabile w mi serve per sapere quanti thread non sono ancora terminati nel momento in cui il server riceve il segnale!
Edit: Il codice ora si presenta così:
fun_sig invece:codice:while(run){ signal(SIGINT, fun_sig); signal(SIGTERM, fun_sig); if( acp = accept(socket, NULL, NULL)!= -1 ){ pthread_create(&t_id, NULL, worker, (void *) acp); pthread_detach(t_id); pthread_mutex_lock(&w_mux); w++; } else continue; }
Run è ovviamente una variabile globale! Può andar bene così?codice:void fun_sig(){ run = 0; }


Rispondi quotando