O fallisce la connessione.Originariamente inviato da nomida
Un socket e' bloccante quando, a seguito di una chiamata alla funzione di attesa per una connessione, blocca il thread in cui e' stata creata, fino all'arrivo di una richiesta di connessione.
Comunque non è quello il socket da fare non bloccante, ma quello ricevuto dalla accept sul quale avviene la lettura con la read. Se quello è bloccante la funzione rimane in attesa di dati e se non arrivano si ferma tutto. Quando accoppi il client la read del server figlio si sblocca perché la connessione è stata chiusa.
Il fatto che ci sia o no una fork è irrilevante per la read.
Curiosità: a che serve quel mutex?
Sarebbe meglio che lo sbloccassi quando il figlio termina.