summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_dahdi.c2
-rw-r--r--channels/sig_analog.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index b15caa5be..a394ec89c 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -11841,6 +11841,7 @@ static struct dahdi_pvt *handle_init_event(struct dahdi_pvt *i, int event)
ast_log(LOG_WARNING, "Cannot allocate new structure on channel %d\n", i->channel);
} else if (ast_pthread_create_detached(&threadid, NULL, analog_ss_thread, chan)) {
ast_log(LOG_WARNING, "Unable to start simple switch thread on channel %d\n", i->channel);
+ ast_hangup(chan);
}
}
ast_callid_threadstorage_auto_clean(callid, callid_created);
@@ -12111,6 +12112,7 @@ static void *do_monitor(void *data)
res = ast_pthread_create_detached(&threadid, NULL, analog_ss_thread, chan);
if (res) {
ast_log(LOG_WARNING, "Unable to start simple switch thread on channel %d\n", i->channel);
+ ast_hangup(chan);
} else {
i->dtmfcid_holdoff_state = 1;
}
diff --git a/channels/sig_analog.c b/channels/sig_analog.c
index eef043676..f40932f27 100644
--- a/channels/sig_analog.c
+++ b/channels/sig_analog.c
@@ -3886,6 +3886,7 @@ void *analog_handle_init_event(struct analog_pvt *i, int event)
ast_log(LOG_WARNING, "Cannot allocate new structure on channel %d\n", i->channel);
} else if (ast_pthread_create_detached(&threadid, NULL, __analog_ss_thread, i)) {
ast_log(LOG_WARNING, "Unable to start simple switch thread on channel %d\n", i->channel);
+ ast_hangup(chan);
}
}
ast_callid_threadstorage_auto_clean(callid, callid_created);
@@ -3912,6 +3913,7 @@ void *analog_handle_init_event(struct analog_pvt *i, int event)
ast_log(LOG_WARNING, "Cannot allocate new structure on channel %d\n", i->channel);
} else if (ast_pthread_create_detached(&threadid, NULL, __analog_ss_thread, i)) {
ast_log(LOG_WARNING, "Unable to start simple switch thread on channel %d\n", i->channel);
+ ast_hangup(chan);
}
}
ast_callid_threadstorage_auto_clean(callid, callid_created);