16 Commits

Author SHA1 Message Date
Rainer Gerhards
ac186f1c3d removed mutex locks
... by utilizing that we need to modify a state variable only in
a sequential way during shutdown.
2009-07-17 19:59:22 +02:00
Rainer Gerhards
4c9eded44d further code simplification
... could even remove one mutex by using a better algorithm. I think I also
spotted some situation in which a hang could have happened. As I can't fix it
in v4 and less without moving to the new engine, I make no effort in testing
this out. Hangs occur during shutdown, only (if at all). The code changes
should also result in some mild performance improvement. Some bug potential,
but overall the bug potential should have been greatly reduced.
2009-07-17 18:40:28 +02:00
Rainer Gerhards
183b490155 more code simplification, should also bring some performance enhancement
reducing the number of thread cancellation state changes
2009-07-17 12:38:49 +02:00
Rainer Gerhards
cb7f903730 some code simplification 2009-07-16 12:42:45 +02:00
Rainer Gerhards
4b6e93d382 further reduction in code size/complexity due to design change 2009-07-08 18:45:23 +02:00
Rainer Gerhards
4cfbc7254a simplified worker thread handling
based on now working with detached threads. This is probably the biggest
patch in this series and with large bug potential.
2009-07-08 18:12:05 +02:00
Rainer Gerhards
651bee9cf5 Merge branch 'omfile' into tmp
This was a complex manual merge, especially in action.c. So if
there occur some problems, this would be a good point to start
troubleshooting. I run a couple of tests before commiting and
they all went well.

Conflicts:
	action.c
	action.h
	runtime/queue.c
	runtime/queue.h
	runtime/wti.c
	runtime/wti.h
2009-06-22 15:12:35 +02:00
Rainer Gerhards
7a695d1714 removed uniprocessor optimization
... as it was not even optimal on uniprocessors any longer ;) I keep
the config directive in, maybe we can utilize it again at some later
point in time (questionable).
2009-06-19 12:03:56 +02:00
Rainer Gerhards
d4564f8399 interim commit: working on failure cases
slightly improved situation, would like to save it before carrying on
2009-05-27 19:43:28 +02:00
Rainer Gerhards
9f45b80ea9 free last processed message in all cases
so far, the last processed message was only freed when the next
one was processed. This has been changed now. More precisely, a
better algorithm has been selected for the queue worker process, which
also involves less overhead than the previous one. The fix for
"free last processed message" as then more or less a side-effect
(easy to do) of the new algorithm.
2009-05-20 15:12:49 +02:00
Rainer Gerhards
5c0aeae8ab added $MainMsgQueueDequeueBatchSize and $ActionQueueDequeueBatchSize configuration directives 2009-04-23 12:50:07 +02:00
Rainer Gerhards
7667845bd7 first attempt at dequeueing multiple batches inside the queue
... but this code has serious problems when terminating the queue, also
it is far from being optimal. I will commit a series of patches (hopefully)
as I am on the path to the final implementation.
2009-04-22 15:06:45 +02:00
Rainer Gerhards
611b336449 Merge branch 'dapatch' 2009-03-25 17:21:56 +01:00
Rainer Gerhards
6ffb901081 bugfix: potential abort with DA queue after high watermark is reached
There exists a race condition that can lead to a segfault. Thanks
go to vbernetr, who performed the analysis and provided patch, which
I only tweaked a very little bit.
2009-03-25 17:20:51 +01:00
Rainer Gerhards
3af28bbd2d moved runtime files into their own directory 2008-04-16 08:56:48 +02:00
Rainer Gerhards
cf38fc8175 added a setting "$OptimizeForUniprocessor"
...to enable users to turn off pthread_yield calls which are
counter-productive on multiprocessor machines (but have been
shown to be useful on uniprocessors)
2008-10-22 13:54:40 +02:00