From db73be2e9bb22c36393ea9b7879a0db8946fe630 Mon Sep 17 00:00:00 2001 From: pfelt Date: Mon, 14 Apr 2008 03:50:33 +0000 Subject: [PATCH] -- minor changes fixing a race issue in start busy and not resetting the head of the list on delete which caused major issues. --- src/agents/imap/progress.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/agents/imap/progress.c b/src/agents/imap/progress.c index 15461ea..f2b1db0 100644 --- a/src/agents/imap/progress.c +++ b/src/agents/imap/progress.c @@ -34,15 +34,15 @@ StartBusy(ImapSession *session, char *Message) } /* add ourselves to the list */ - XplWaitOnLocalSemaphore(Imap.sem_Busy); - Imap.list_Busy = BongoListPrepend(Imap.list_Busy, session); - XplSignalLocalSemaphore(Imap.sem_Busy); - p->last_update = time(0); p->messages_processed = 0; p->message = MemStrdup(Message); session->progress = p; + XplWaitOnLocalSemaphore(Imap.sem_Busy); + Imap.list_Busy = BongoListPrepend(Imap.list_Busy, session); + XplSignalLocalSemaphore(Imap.sem_Busy); + return; } @@ -51,7 +51,7 @@ void StopBusy(ImapSession *session) { XplWaitOnLocalSemaphore(Imap.sem_Busy); - BongoListDelete(Imap.list_Busy, session, FALSE); + Imap.list_Busy = BongoListDelete(Imap.list_Busy, session, FALSE); XplSignalLocalSemaphore(Imap.sem_Busy); if (session->progress) {