aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2008-10-07 23:14:57 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2008-10-07 23:14:57 +0000
commit010debfb0939ec9a2d71b97a922da8d85c7662ad (patch)
treef1de551c2fccc51f8025cd2ee103e533d9803972 /channels
parent1cf9f97998c9344a67264841c9646878be7759fc (diff)
revert this change until i can understand why it results in locking order changes
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@147430 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_dahdi.c34
1 files changed, 14 insertions, 20 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index 53a690d62..476a24c62 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -9080,16 +9080,10 @@ static void *pri_dchannel(void *vpri)
}
pthread_attr_destroy(&attr);
} else {
- /* Release PRI lock while we create the channel */
ast_mutex_unlock(&pri->lock);
-
- if (!(c = dahdi_new(pri->pvts[chanpos], AST_STATE_RING, 0, SUB_REAL, law, e->ring.ctype))) {
- ast_mutex_lock(&pri->lock);
- ast_log(LOG_WARNING, "Unable to create channel for %d/%d, span %d\n",
- pri->pvts[chanpos]->logicalspan, pri->pvts[chanpos]->prioffset, pri->span);
- pri_hangup(pri->pri, e->ring.call, PRI_CAUSE_SWITCH_CONGESTION);
- pri->pvts[chanpos]->call = NULL;
- } else {
+ /* Release PRI lock while we create the channel */
+ c = dahdi_new(pri->pvts[chanpos], AST_STATE_RING, 1, SUB_REAL, law, e->ring.ctype);
+ if (c) {
char calledtonstr[10];
ast_mutex_unlock(&pri->pvts[chanpos]->lock);
@@ -9116,17 +9110,17 @@ static void *pri_dchannel(void *vpri)
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "Accepting call from '%s' to '%s' on channel %d/%d, span %d\n",
- plancallingnum, pri->pvts[chanpos]->exten,
- pri->pvts[chanpos]->logicalspan, pri->pvts[chanpos]->prioffset, pri->span);
- if (ast_pbx_start(c)) {
- ast_log(LOG_WARNING, "Unable to start PBX on %s\n", c->name);
- ast_hangup(c);
- pri->pvts[chanpos]->owner = NULL;
- pri_hangup(pri->pri, e->ring.call, PRI_CAUSE_SWITCH_CONGESTION);
- pri->pvts[chanpos]->call = NULL;
- } else {
- dahdi_enable_ec(pri->pvts[chanpos]);
- }
+ plancallingnum, pri->pvts[chanpos]->exten,
+ pri->pvts[chanpos]->logicalspan, pri->pvts[chanpos]->prioffset, pri->span);
+ dahdi_enable_ec(pri->pvts[chanpos]);
+ } else {
+
+ ast_mutex_lock(&pri->lock);
+
+ ast_log(LOG_WARNING, "Unable to start PBX on channel %d/%d, span %d\n",
+ pri->pvts[chanpos]->logicalspan, pri->pvts[chanpos]->prioffset, pri->span);
+ pri_hangup(pri->pri, e->ring.call, PRI_CAUSE_SWITCH_CONGESTION);
+ pri->pvts[chanpos]->call = NULL;
}
}
} else {