Update of /usr/cvsroot/asterisk
In directory localhost.localdomain:/tmp/cvs-serv13669

Modified Files:
        devicestate.c 
Log Message:
Fix lock ordering in devicestate


Index: devicestate.c
===================================================================
RCS file: /usr/cvsroot/asterisk/devicestate.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- devicestate.c       8 Jul 2005 21:15:41 -0000       1.1
+++ devicestate.c       10 Jul 2005 12:09:40 -0000      1.2
@@ -184,12 +184,14 @@
                AST_LIST_LOCK(&state_changes);
                AST_LIST_INSERT_TAIL(&state_changes, change, list);
                if (AST_LIST_FIRST(&state_changes) == change) {
+                       AST_LIST_UNLOCK(&state_changes);
                        /* the list was empty, signal the thread */
                        ast_mutex_lock(&change_pending_lock);
                        pthread_cond_signal(&change_pending);
                        ast_mutex_unlock(&change_pending_lock);
+               } else {
+                       AST_LIST_UNLOCK(&state_changes);
                }
-               AST_LIST_UNLOCK(&state_changes);
        }
 
        return 1;

_______________________________________________
Asterisk-Cvs mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-cvs

Reply via email to