]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
tweak socket shutdown to eliminate race
authorMichael Jerris <mike@jerris.com>
Thu, 14 Sep 2006 01:37:55 +0000 (01:37 +0000)
committerMichael Jerris <mike@jerris.com>
Thu, 14 Sep 2006 01:37:55 +0000 (01:37 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2694 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_rtp.c

index 6ae324e0ca1d232dcc296a8e17bee95a19009947..a91f93770890d63dea141ed6d911648b9fac0cc0 100644 (file)
@@ -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);
 }