Fix up the device state processing thread in app_queue so that it's not

possible for there to be entries in the queue and the thread is just sleeping
(Thanks to mmichelson for bringing the problem to my attention)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@73127 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2007-07-03 18:25:30 +00:00
parent 8b93f50dfc
commit 8a53d595a5

View File

@@ -631,8 +631,10 @@ static void *device_state_thread(void *data)
while (!device_state.stop) {
ast_mutex_lock(&device_state.lock);
ast_cond_wait(&device_state.cond, &device_state.lock);
sc = AST_LIST_REMOVE_HEAD(&device_state.state_change_q, entry);
if (!(sc = AST_LIST_REMOVE_HEAD(&device_state.state_change_q, entry))) {
ast_cond_wait(&device_state.cond, &device_state.lock);
sc = AST_LIST_REMOVE_HEAD(&device_state.state_change_q, entry);
}
ast_mutex_unlock(&device_state.lock);
/* Check to see if we were woken up to see the request to stop */