-
Socket + Thread + Fork.
Bonjour,
Je rencontre un problème avec un logiciel multithreade qui utilise une socket et qui doit fork().
Le programme ce connecte a un server, puis il lance un thread qui va s'occuper de lire les transmission réseaux.
A ce stade la, tous fonctionne correctement. Après le programme se fork(), et le processus fils execvp(), et a se moment la, la connexion du père est détruite (le select() renvoie le fd comme étant disponible en lecture, et read renvoie 0).
Je suis tombe la dessus :
http://www.linuxprogrammingblog.com/threads-and-fork-think-twice-before-using-them
Je me suis dit que les deux process utilisaient la même socket, J'ai donc ajoute cette ligne, mais sans succes
Code:
fcntl (_sockfd, F_SETFD, FD_CLOEXEC);
Quelqu'un comprend t'il se qui se passe?
EDIT : Le problème venais totalement d’ailleurs, c’était le serveur qui fermait la connexion.