tweak socket shutdown to eliminate race

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2694 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Michael Jerris 2006-09-14 01:37:55 +00:00
parent 8a0e9ccf1f
commit 692935bea0
1 changed files with 5 additions and 2 deletions

View 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);
}