[UDP-HTTP] Cancel the TCP thread
Cancel the TCP thread before to join it, because of the blocking recv() call.
This commit is contained in:
parent
adc05b98c0
commit
632858155a
|
@ -109,11 +109,15 @@ int main(int argc, char *argv[])
|
||||||
ret = receive_udp() ;
|
ret = receive_udp() ;
|
||||||
|
|
||||||
/* Stop the TCP thread */
|
/* Stop the TCP thread */
|
||||||
|
// We must cancel the thread because it can be blocked on the
|
||||||
|
// recv() call:
|
||||||
|
if (pthread_cancel(tcp_server_thread))
|
||||||
|
perror("Cannot cancel the TCP server thread") ;
|
||||||
if (pthread_join(tcp_server_thread, NULL))
|
if (pthread_join(tcp_server_thread, NULL))
|
||||||
perror("Cannot join the TCP server thread") ;
|
perror("Cannot join the TCP server thread") ;
|
||||||
|
|
||||||
/* Cleaning */
|
|
||||||
exit:
|
exit:
|
||||||
|
/* Close sockets */
|
||||||
if (tcp_sockfd >= 0)
|
if (tcp_sockfd >= 0)
|
||||||
if (close(tcp_sockfd))
|
if (close(tcp_sockfd))
|
||||||
perror("Error closing the TCP socket") ;
|
perror("Error closing the TCP socket") ;
|
||||||
|
@ -121,6 +125,7 @@ int main(int argc, char *argv[])
|
||||||
if (close(udp_sockfd))
|
if (close(udp_sockfd))
|
||||||
perror("Error closing the UDP socket") ;
|
perror("Error closing the UDP socket") ;
|
||||||
|
|
||||||
|
/* Last cleaning */
|
||||||
free(answer) ;
|
free(answer) ;
|
||||||
free_results_list() ;
|
free_results_list() ;
|
||||||
sem_destroy(&lock_results) ;
|
sem_destroy(&lock_results) ;
|
||||||
|
|
Loading…
Reference in New Issue