[asterisk-commits] moy: branch moy/mfcr2-1.4 r129906 - /team/moy/mfcr2-1.4/channels/chan_zap.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Jul 10 23:48:18 CDT 2008
Author: moy
Date: Thu Jul 10 23:48:18 2008
New Revision: 129906
URL: http://svn.digium.com/view/asterisk?view=rev&rev=129906
Log:
added proper locking and setting of mfcr2call when requesting an outgoing channel
Modified:
team/moy/mfcr2-1.4/channels/chan_zap.c
Modified: team/moy/mfcr2-1.4/channels/chan_zap.c
URL: http://svn.digium.com/view/asterisk/team/moy/mfcr2-1.4/channels/chan_zap.c?view=diff&rev=129906&r1=129905&r2=129906
==============================================================================
--- team/moy/mfcr2-1.4/channels/chan_zap.c (original)
+++ team/moy/mfcr2-1.4/channels/chan_zap.c Thu Jul 10 23:48:18 2008
@@ -8165,6 +8165,7 @@
}
#endif
#ifdef HAVE_OPENR2
+ /* Trust MFC/R2 */
if (p->mfcr2) {
if (p->mfcr2call)
return 0;
@@ -8447,6 +8448,19 @@
}
}
#endif
+#ifdef HAVE_OPENR2
+ if (p->mfcr2) {
+ ast_mutex_lock(&p->lock);
+ if (p->mfcr2call) {
+ ast_log(LOG_DEBUG, "Yay!, someone just beat us in the race for channel %d.\n", p->channel);
+ ast_mutex_unlock(&p->lock);
+ goto next;
+ }
+ p->mfcr2call = 1;
+ ast_mutex_unlock(&p->lock);
+ zt_r2_update_monitor_count(p->mfcr2, 0);
+ }
+#endif
if (p->channel == CHAN_PSEUDO) {
p = chandup(p);
if (!p) {
@@ -8461,11 +8475,6 @@
}
p->outgoing = 1;
tmp = zt_new(p, AST_STATE_RESERVED, 0, p->owner ? SUB_CALLWAIT : SUB_REAL, 0, 0);
-#ifdef HAVE_OPENR2
- if (p->mfcr2) {
- zt_r2_update_monitor_count(p->mfcr2, 0);
- }
-#endif
#ifdef HAVE_PRI
if (p->bearer) {
/* Log owner to bearer channel, too */
More information about the asterisk-commits
mailing list