mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 00:04:53 +00:00
Merge "bridge: Hold off more than one imparting channel at a time."
This commit is contained in:
@@ -151,47 +151,20 @@ int bridge_channel_internal_push_full(struct ast_bridge_channel *bridge_channel,
|
||||
void bridge_channel_internal_pull(struct ast_bridge_channel *bridge_channel);
|
||||
|
||||
/*!
|
||||
* \brief Internal bridge channel wait condition and associated result.
|
||||
*/
|
||||
struct bridge_channel_internal_cond {
|
||||
/*! Lock for the data structure */
|
||||
ast_mutex_t lock;
|
||||
/*! Wait condition */
|
||||
ast_cond_t cond;
|
||||
/*! Wait until done */
|
||||
int done;
|
||||
/*! The bridge channel */
|
||||
struct ast_bridge_channel *bridge_channel;
|
||||
};
|
||||
|
||||
/*!
|
||||
* \internal
|
||||
* \brief Wait for the expected signal.
|
||||
* \since 13.5.0
|
||||
* \brief Signal imparting threads to wake up.
|
||||
* \since 13.9.0
|
||||
*
|
||||
* \param cond the wait object
|
||||
* \param chan Channel imparted that we need to signal.
|
||||
*
|
||||
* \return Nothing
|
||||
*/
|
||||
void bridge_channel_internal_wait(struct bridge_channel_internal_cond *cond);
|
||||
|
||||
/*!
|
||||
* \internal
|
||||
* \brief Signal the condition wait.
|
||||
* \since 13.5.0
|
||||
*
|
||||
* \param cond the wait object
|
||||
*
|
||||
* \return Nothing
|
||||
*/
|
||||
void bridge_channel_internal_signal(struct bridge_channel_internal_cond *cond);
|
||||
void bridge_channel_impart_signal(struct ast_channel *chan);
|
||||
|
||||
/*!
|
||||
* \internal
|
||||
* \brief Join the bridge_channel to the bridge (blocking)
|
||||
*
|
||||
* \param bridge_channel The Channel in the bridge
|
||||
* \param cond data used for signaling
|
||||
*
|
||||
* \note The bridge_channel->swap holds a channel reference for the swap
|
||||
* channel going into the bridging system. The ref ensures that the swap
|
||||
@@ -206,8 +179,7 @@ void bridge_channel_internal_signal(struct bridge_channel_internal_cond *cond);
|
||||
* \retval 0 bridge channel successfully joined the bridge
|
||||
* \retval -1 bridge channel failed to join the bridge
|
||||
*/
|
||||
int bridge_channel_internal_join(struct ast_bridge_channel *bridge_channel,
|
||||
struct bridge_channel_internal_cond *cond);
|
||||
int bridge_channel_internal_join(struct ast_bridge_channel *bridge_channel);
|
||||
|
||||
/*!
|
||||
* \internal
|
||||
|
Reference in New Issue
Block a user