forked from Mirrors/freeswitch
fix locking bug
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5183 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
46043b05e0
commit
b7c985096c
@ -491,7 +491,7 @@ SWITCH_DECLARE(char *) switch_core_session_get_uuid(switch_core_session_t *sessi
|
||||
SWITCH_DECLARE(char *) switch_core_get_uuid(void);
|
||||
|
||||
#ifdef SWITCH_DEBUG_RWLOCKS
|
||||
SWITCH_DECLARE(switch_core_session_t *) switch_core_session_perform_locate(char *uuid_str, const char *file, const char *func, int line);
|
||||
SWITCH_DECLARE(switch_core_session_t *) switch_core_session_perform_locate(const char *uuid_str, const char *file, const char *func, int line);
|
||||
#endif
|
||||
|
||||
/*!
|
||||
|
@ -575,7 +575,7 @@ SWITCH_STANDARD_API(session_record_function)
|
||||
stream->write_function(stream, "-Error Cannot locate session!\n");
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
if (switch_strlen_zero(action) || switch_strlen_zero(path)) {
|
||||
goto usage;
|
||||
}
|
||||
@ -594,11 +594,11 @@ SWITCH_STANDARD_API(session_record_function)
|
||||
|
||||
stream->write_function(stream, "USAGE: %s\n", session_record_api_interface.syntax);
|
||||
switch_safe_free(mycmd);
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
|
||||
|
||||
done:
|
||||
|
||||
if (session) {
|
||||
if (rsession) {
|
||||
switch_core_session_rwunlock(rsession);
|
||||
}
|
||||
|
||||
|
@ -644,14 +644,14 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_uuid_bridge(char *originator_uuid, ch
|
||||
switch_channel_set_state_flag(originator_channel, CF_TRANSFER);
|
||||
switch_channel_set_state_flag(originatee_channel, CF_TRANSFER);
|
||||
|
||||
/* release the read locks we have on the channels */
|
||||
switch_core_session_rwunlock(originator_session);
|
||||
switch_core_session_rwunlock(originatee_session);
|
||||
|
||||
/* change the states and let the chips fall where they may */
|
||||
switch_channel_set_state(originator_channel, CS_TRANSMIT);
|
||||
switch_channel_set_state(originatee_channel, CS_TRANSMIT);
|
||||
|
||||
/* release the read locks we have on the channels */
|
||||
switch_core_session_rwunlock(originator_session);
|
||||
switch_core_session_rwunlock(originatee_session);
|
||||
|
||||
status = SWITCH_STATUS_SUCCESS;
|
||||
|
||||
while (switch_channel_get_state(originatee_channel) < CS_HANGUP && switch_channel_test_flag(originatee_channel, CF_TAGGED)) {
|
||||
|
Loading…
Reference in New Issue
Block a user