MT#62181 udp_trsp: break out of blocking recv()

On shutdown, call shutdown() in the socket, so that a thread blocked in
recv() wakes up and gets a chance to exit cleanly.

Change-Id: I24b1b7c608ec1307019b424becef31e8db02e7bb
mr13.3.1
Richard Fuchs 1 year ago
parent 42a3ef3c62
commit b8fde4d3fe

@ -282,7 +282,7 @@ void udp_trsp::run()
INFO("Started SIP server UDP transport on %s:%i\n",
sock->get_ip(),sock->get_port());
while(true){
while (!stop_requested()){
//DBG("before recvmsg (%s:%i)\n",sock->get_ip(),sock->get_port());
@ -360,7 +360,9 @@ void udp_trsp::run()
/** @see AmThread */
void udp_trsp::on_stop()
{
// wake up thread blocked in recv()
if (sock->get_sd() != -1)
shutdown(sock->get_sd(), SHUT_RD);
}

Loading…
Cancel
Save