summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2012-04-20 16:23:01 +0000
committerRichard Mudgett <rmudgett@digium.com>2012-04-20 16:23:01 +0000
commit01194c581139eb19063700418ce2a1df0c69ef02 (patch)
tree744a7cd232b059dc39bfca4c41469e27aba91e66 /channels
parentb43f4a60ddf00ca242d95488bc31fd8ea7fc5b9f (diff)
Use ast_channel_lock_both() where it was inlined before.
The CHANNEL_DEADLOCK_AVOIDANCE() feature of preserving where the channel lock was originally obtained is overkill where ast_channel_lock_both() was inlined. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@362888 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_dahdi.c10
-rw-r--r--channels/chan_local.c5
-rw-r--r--channels/chan_misdn.c5
3 files changed, 4 insertions, 16 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index 55a0b721d..0487d5238 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -7302,10 +7302,7 @@ static enum ast_bridge_result dahdi_bridge(struct ast_channel *c0, struct ast_ch
if (flags & (AST_BRIDGE_DTMF_CHANNEL_0 | AST_BRIDGE_DTMF_CHANNEL_1))
return AST_BRIDGE_FAILED_NOWARN;
- ast_channel_lock(c0);
- while (ast_channel_trylock(c1)) {
- CHANNEL_DEADLOCK_AVOIDANCE(c0);
- }
+ ast_channel_lock_both(c0, c1);
p0 = ast_channel_tech_pvt(c0);
p1 = ast_channel_tech_pvt(c1);
@@ -7513,10 +7510,7 @@ static enum ast_bridge_result dahdi_bridge(struct ast_channel *c0, struct ast_ch
/* Here's our main loop... Start by locking things, looking for private parts,
and then balking if anything is wrong */
- ast_channel_lock(c0);
- while (ast_channel_trylock(c1)) {
- CHANNEL_DEADLOCK_AVOIDANCE(c0);
- }
+ ast_channel_lock_both(c0, c1);
p0 = ast_channel_tech_pvt(c0);
p1 = ast_channel_tech_pvt(c1);
diff --git a/channels/chan_local.c b/channels/chan_local.c
index c0657c97b..069f44a2e 100644
--- a/channels/chan_local.c
+++ b/channels/chan_local.c
@@ -194,10 +194,7 @@ static void awesome_locking(struct local_pvt *p, struct ast_channel **outchan, s
ao2_lock(p);
} else {
/* lock both channels first, then get the pvt lock */
- ast_channel_lock(chan);
- while (ast_channel_trylock(owner)) {
- CHANNEL_DEADLOCK_AVOIDANCE(chan);
- }
+ ast_channel_lock_both(chan, owner);
ao2_lock(p);
}
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index de807774a..0f1715b7a 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -8560,10 +8560,7 @@ static int misdn_attempt_transfer(struct chan_list *active_ch, struct chan_list
return -1;
}
- ast_channel_lock(held_ch->ast);
- while (ast_channel_trylock(active_ch->ast)) {
- CHANNEL_DEADLOCK_AVOIDANCE(held_ch->ast);
- }
+ ast_channel_lock_both(held_ch->ast, active_ch->ast);
transferee = ast_bridged_channel(held_ch->ast);
if (!transferee) {