From: Michael Jerris Date: Thu, 14 Sep 2006 01:37:55 +0000 (+0000) Subject: tweak socket shutdown to eliminate race X-Git-Tag: v1.0-beta1~2137 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=692935bea0f225a801d644ebe50b4f82d776a5c8;p=thirdparty%2Ffreeswitch.git tweak socket shutdown to eliminate race git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2694 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- diff --git a/src/switch_rtp.c b/src/switch_rtp.c index 6ae324e0ca..a91f937708 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -553,8 +553,11 @@ SWITCH_DECLARE(void) switch_rtp_kill_socket(switch_rtp_t *rtp_session) { assert(rtp_session != NULL); switch_mutex_lock(rtp_session->flag_mutex); - apr_socket_shutdown(rtp_session->sock, APR_SHUTDOWN_READWRITE); - switch_clear_flag(rtp_session, SWITCH_RTP_FLAG_IO); + if (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_IO)) { + assert(rtp_session->sock != NULL); + apr_socket_shutdown(rtp_session->sock, APR_SHUTDOWN_READWRITE); + switch_clear_flag(rtp_session, SWITCH_RTP_FLAG_IO); + } switch_mutex_unlock(rtp_session->flag_mutex); }