From 501e990bd615f696ebb8ede0389be9b89b99e349 Mon Sep 17 00:00:00 2001 From: zribiahmed Date: Tue, 19 Feb 2013 08:31:30 +0000 Subject: [PATCH] fix bug in cwmp_schedule_session --- src/cwmp.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/cwmp.c b/src/cwmp.c index c0cc61d..84ba598 100644 --- a/src/cwmp.c +++ b/src/cwmp.c @@ -115,20 +115,18 @@ void cwmp_schedule_session (struct cwmp *cwmp) while (1) { + pthread_mutex_lock (&(cwmp->mutex_session_send)); ilist = (&(cwmp->head_session_queue))->next; while ((ilist == &(cwmp->head_session_queue)) || retry) { - pthread_mutex_lock (&(cwmp->mutex_session_send)); - t = cwmp_get_retry_interval(cwmp); + t = cwmp_get_retry_interval(cwmp); time_to_wait.tv_sec = time(NULL) + t; CWMP_LOG(INFO,"Waiting the next session"); pthread_cond_timedwait(&(cwmp->threshold_session_send), &(cwmp->mutex_session_send), &time_to_wait); ilist = (&(cwmp->head_session_queue))->next; retry = false; - pthread_mutex_unlock (&(cwmp->mutex_session_send)); } - pthread_mutex_lock (&(cwmp->mutex_session_send)); session = list_entry(ilist, struct session, list); cwmp_prepare_value_change(cwmp, session);