From 692935bea0f225a801d644ebe50b4f82d776a5c8 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Thu, 14 Sep 2006 01:37:55 +0000 Subject: [PATCH] tweak socket shutdown to eliminate race git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2694 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/switch_rtp.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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); }