Kersoft | Bonjour, Un serveur tout simple à bloquer lors qu'un client inconnue c'est connecté.
Lors ce que j'ai tué le processus (kill -USR1), j'étais dans la function accept() qui est revenue avec l'erreur "Interrupted system call" ).
Le serveur est constitue d'une boucle infine after un appel à 'select()' suivi d'un appel à accept si le port de connection a été solicité. De plus le processus ne prenait pas de CPU quand je l'ai tué.
Code :
- for(;;)
- {
- bcopy(&Fds, readfds, sizeof(Fds));
- select(FD_SETSIZE, &readfs, &writefds, &exceptfds, &timeout);
- if (FD_ISSET(Connection_socket, &readfds))
- {
- communication_socket = accept(Connection_socket);
- if (communication_socket == -1)
- {
- printf("accept failed (%s)\n", sys_errlist[errno]);
- print_stack();
- exit(1);
- }
- .....
- }
- }
|
Quelqu'un aurait une idée sur les causes possibles, et du meilleur moyen d'y reagir?
Merci d'avance
|