diff options
author | Richard Mudgett <rmudgett@digium.com> | 2009-10-02 01:09:31 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2009-10-02 01:09:31 +0000 |
commit | 3b83d2b414eac8ce057d38c476c6e59d1f009b3b (patch) | |
tree | 78ea4c9ce5a073a3cc6c94ff45d0b99d5530add8 /channels/misdn/isdn_lib_intern.h | |
parent | bd7ca4b764c604b1e09de691a89687b444dc32e8 (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.h | 5 |
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 */ |