summaryrefslogtreecommitdiff
path: root/channels/misdn/isdn_lib_intern.h
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2009-10-02 01:09:31 +0000
committerRichard Mudgett <rmudgett@digium.com>2009-10-02 01:09:31 +0000
commit3b83d2b414eac8ce057d38c476c6e59d1f009b3b (patch)
tree78ea4c9ce5a073a3cc6c94ff45d0b99d5530add8 /channels/misdn/isdn_lib_intern.h
parentbd7ca4b764c604b1e09de691a89687b444dc32e8 (diff)
Merged revisions 221769 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r221769 | rmudgett | 2009-10-01 18:18:28 -0500 (Thu, 01 Oct 2009) | 26 lines Occasionally losing use of B channels in chan_misdn. I have not been able to reproduce the problem of losing channels. However, I have seen in the code a reentrancy problem that might give these symptoms. The reentrancy patch does several things: 1) Guards B channel and B channel structure allocation. 2) Makes the B channel structure find routines more precise in locating records. 3) Never leave a B channel allocated if we received cause 44. The last item may cause temporary outgoing call problems, but they should clear when the line becomes idle. (closes issue #15490) Reported by: slutec18 Patches: issue15490_channel_alloc_reentrancy.patch uploaded by rmudgett (license 664) Tested by: rmudgett, slutec18 (closes issue #15458) Reported by: FabienToune Patches: issue15458_channel_alloc_reentrancy.patch uploaded by rmudgett (license 664) Tested by: FabienToune, rmudgett, slutec18 ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@221844 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/misdn/isdn_lib_intern.h')
-rw-r--r--channels/misdn/isdn_lib_intern.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/channels/misdn/isdn_lib_intern.h b/channels/misdn/isdn_lib_intern.h
index 3d0fd5428..d811f8066 100644
--- a/channels/misdn/isdn_lib_intern.h
+++ b/channels/misdn/isdn_lib_intern.h
@@ -67,6 +67,9 @@ struct misdn_stack {
manager_t mgr;
pthread_mutex_t nstlock;
+ /*! \brief Stack struct critical section lock. */
+ pthread_mutex_t st_lock;
+
/*! \brief D Channel mISDN driver stack ID (Parent stack ID) */
int d_stid;
@@ -134,7 +137,7 @@ struct misdn_stack {
*/
char channels[MAX_BCHANS + 1 + MISDN_MAX_REGISTER_LINKS];
- /*! \brief List of holded channels */
+ /*! \brief List of held channels */
struct misdn_bchannel *holding;
/*! \brief Next stack in the list of stacks */