From 3c8dfe099d2d7156ff85bdc3c09a4399173fb670 Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Sun, 10 Jul 2005 12:09:40 +0000
Subject: [PATCH] Fix lock ordering in devicestate

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6069 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 devicestate.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/devicestate.c b/devicestate.c
index 4641f95490..621e8f1fd0 100755
--- a/devicestate.c
+++ b/devicestate.c
@@ -184,12 +184,14 @@ int ast_device_state_changed(const char *fmt, ...)
 		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;
-- 
GitLab