summaryrefslogtreecommitdiffstats
path: root/runtime/queue.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2008-09-18 12:45:44 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2008-09-18 12:45:44 +0200
commit9d8bb5629b6131be7c260ab3f9169ea1055c07f6 (patch)
treefa017f714eb4c75f94b9902f66c59f24d4bb4bf6 /runtime/queue.c
parent7b63cd6feda5087c43652bdcf8e694b544295d5b (diff)
parent4c96ebdcfe075e80810b01257cf21ea1c9b3ec0e (diff)
downloadrsyslog-9d8bb5629b6131be7c260ab3f9169ea1055c07f6.tar.gz
rsyslog-9d8bb5629b6131be7c260ab3f9169ea1055c07f6.tar.bz2
rsyslog-9d8bb5629b6131be7c260ab3f9169ea1055c07f6.zip
Merge branch 'helgrind' into perf
Conflicts: ChangeLog
Diffstat (limited to 'runtime/queue.c')
-rw-r--r--runtime/queue.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/runtime/queue.c b/runtime/queue.c
index 7e7d4152..c0a37019 100644
--- a/runtime/queue.c
+++ b/runtime/queue.c
@@ -2171,17 +2171,17 @@ queueEnqObj(queue_t *pThis, flowControl_t flowCtlType, void *pUsr)
finalize_it:
if(pThis->qType != QUEUETYPE_DIRECT) {
- d_pthread_mutex_unlock(pThis->mut);
+ /* make sure at least one worker is running. */
+ if(pThis->qType != QUEUETYPE_DIRECT) {
+ queueAdviseMaxWorkers(pThis);
+ }
+ /* and release the mutex */
i = pthread_cond_signal(&pThis->notEmpty);
+ d_pthread_mutex_unlock(pThis->mut);
dbgoprint((obj_t*) pThis, "EnqueueMsg signaled condition (%d)\n", i);
pthread_setcancelstate(iCancelStateSave, NULL);
}
- /* make sure at least one worker is running. */
- if(pThis->qType != QUEUETYPE_DIRECT) {
- queueAdviseMaxWorkers(pThis);
- }
-
RETiRet;
}