diff options
author | Kevin Harwell <kharwell@digium.com> | 2015-07-08 14:56:10 -0500 |
---|---|---|
committer | Kevin Harwell <kharwell@digium.com> | 2015-07-13 12:57:56 -0500 |
commit | c8555235195ed1deb37f5e27390b0ed4da329dc5 (patch) | |
tree | 45d9a85a0858cf8e0dc9daeab658dcc3f6ef3f08 /include/asterisk/bridge.h | |
parent | 66b57b10f65bee8600c01a0fc03fb491edb7ad76 (diff) |
bridge.c: Fixed race condition during attended transfer
During an attended transfer a thread is started that handles imparting the
bridge channel. From the start of the thread to when the bridge channel is
ready exists a gap that can potentially cause problems (for instance, the
channel being swapped is hung up before the replacement channel enters the
bridge thus stopping the transfer). This patch adds a condition that waits
for the impart thread to get to a point of acceptable readiness before
allowing the initiating thread to continue.
ASTERISK-24782
Reported by: John Bigelow
Change-Id: I08fe33a2560da924e676df55b181e46fca604577
Diffstat (limited to 'include/asterisk/bridge.h')
-rw-r--r-- | include/asterisk/bridge.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/asterisk/bridge.h b/include/asterisk/bridge.h index 8243a1ddb..8858cf02c 100644 --- a/include/asterisk/bridge.h +++ b/include/asterisk/bridge.h @@ -509,6 +509,8 @@ enum ast_bridge_impart_flags { * \param features Bridge features structure. * \param flags defined by enum ast_bridge_impart_flags. * + * \note The given bridge must be unlocked when calling this function. + * * \note The features parameter must be NULL or obtained by * ast_bridge_features_new(). You must not dereference features * after calling even if the call fails. |