[svn-commits] file: trunk r190287 - in /trunk: ./ channels/chan_local.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Apr 23 14:15:33 CDT 2009


Author: file
Date: Thu Apr 23 14:15:30 2009
New Revision: 190287

URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=190287
Log:
Merged revisions 190286 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r190286 | file | 2009-04-23 16:13:18 -0300 (Thu, 23 Apr 2009) | 6 lines
  
  Fix a bug in chan_local glare hangup detection.
  
  If both sides of a Local channel were hung up at around the same time it was
  possible for one thread to destroy the local private structure and have the other thread
  immediately try to remove the already freed structure from the local channel list.
........

Modified:
    trunk/   (props changed)
    trunk/channels/chan_local.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Modified: trunk/channels/chan_local.c
URL: http://svn.digium.com/svn-view/asterisk/trunk/channels/chan_local.c?view=diff&rev=190287&r1=190286&r2=190287
==============================================================================
--- trunk/channels/chan_local.c (original)
+++ trunk/channels/chan_local.c Thu Apr 23 14:15:30 2009
@@ -688,13 +688,10 @@
 		   let local_queue do it. */
 		if (glaredetect)
 			ast_set_flag(p, LOCAL_CANCEL_QUEUE);
-		ast_mutex_unlock(&p->lock);
 		/* Remove from list */
 		AST_LIST_LOCK(&locals);
 		AST_LIST_REMOVE(&locals, p, list);
 		AST_LIST_UNLOCK(&locals);
-		/* Grab / release lock just in case */
-		ast_mutex_lock(&p->lock);
 		ast_mutex_unlock(&p->lock);
 		/* And destroy */
 		if (!glaredetect) {




More information about the svn-commits mailing list