aboutsummaryrefslogtreecommitdiffstats
path: root/src/events.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2014-01-13 17:40:15 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2014-01-13 17:40:15 +0000
commitf16357c9ac57de02a6f3a2c67774aa4976329d71 (patch)
treedefa261880fb773943752dbfa63f94cf6e5816c4 /src/events.c
parent6e61846cdac04d690a1ebaf0ca7fc2862efb2b0c (diff)
downloadrspamd-f16357c9ac57de02a6f3a2c67774aa4976329d71.tar.gz
rspamd-f16357c9ac57de02a6f3a2c67774aa4976329d71.zip
Implement HTTP session for normal worker.
Diffstat (limited to 'src/events.c')
-rw-r--r--src/events.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/events.c b/src/events.c
index da132c64b..711c3b24d 100644
--- a/src/events.c
+++ b/src/events.c
@@ -200,8 +200,8 @@ check_session_pending (struct rspamd_async_session *session)
g_cond_wait (session->cond, session->mtx);
}
if (session->fin != NULL) {
+ g_mutex_unlock (session->mtx);
if (! session->fin (session->user_data)) {
- g_mutex_unlock (session->mtx);
/* Session finished incompletely, perform restoration */
if (session->restore != NULL) {
session->restore (session->user_data);
@@ -210,6 +210,9 @@ check_session_pending (struct rspamd_async_session *session)
}
return TRUE;
}
+ else {
+ return FALSE;
+ }
}
g_mutex_unlock (session->mtx);
return FALSE;