summaryrefslogtreecommitdiffstats
path: root/action.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-10-13 14:38:45 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-10-13 14:38:45 +0200
commit4d70c9b3e5e480d6dfa1c94506270f1f78e8ef32 (patch)
tree35e71c16c55fd3a18a9e5f47d0b027866f825e35 /action.c
parentbecc47cef625bfabf53589bb98ca10c352a4c824 (diff)
downloadrsyslog-4d70c9b3e5e480d6dfa1c94506270f1f78e8ef32.tar.gz
rsyslog-4d70c9b3e5e480d6dfa1c94506270f1f78e8ef32.tar.xz
rsyslog-4d70c9b3e5e480d6dfa1c94506270f1f78e8ef32.zip
added some debug settings plus improved shutdown sequence
... non-working version!
Diffstat (limited to 'action.c')
-rw-r--r--action.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/action.c b/action.c
index d22d6d6d..dddb0e01 100644
--- a/action.c
+++ b/action.c
@@ -50,7 +50,7 @@
#define NO_TIME_PROVIDED 0 /* indicate we do not provide any cached time */
/* forward definitions */
-static rsRetVal processBatchMain(action_t *pAction, batch_t *pBatch);
+static rsRetVal processBatchMain(action_t *pAction, batch_t *pBatch, int*);
/* object static data (once for all instances) */
/* TODO: make this an object! DEFobjStaticHelpers -- rgerhards, 2008-03-05 */
@@ -291,7 +291,7 @@ actionConstructFinalize(action_t *pThis)
* spec. -- rgerhards, 2008-01-30
*/
CHKiRet(qqueueConstruct(&pThis->pQueue, ActionQueType, 1, iActionQueueSize,
- (rsRetVal (*)(void*, batch_t*))processBatchMain));
+ (rsRetVal (*)(void*, batch_t*, int*))processBatchMain));
obj.SetName((obj_t*) pThis->pQueue, pszQName);
/* ... set some properties ... */
@@ -917,7 +917,7 @@ submitBatch(action_t *pAction, batch_t *pBatch, int nElem)
* rgerhards, 2009-05-12
*/
static rsRetVal
-processAction(action_t *pAction, batch_t *pBatch)
+processAction(action_t *pAction, batch_t *pBatch, int *pbShutdownImmediate)
{
int i;
msg_t *pMsg;
@@ -934,7 +934,7 @@ processAction(action_t *pAction, batch_t *pBatch)
CHKiRet(localRet);
/* this must be moved away - up into the dequeue part of the queue, I guess, but that's for another day */
- for(i = 0 ; i < pBatch->nElem ; i++) {
+ for(i = 0 ; i < pBatch->nElem && !*pbShutdownImmediate ; i++) {
pMsg = (msg_t*) pBatch->pElem[i].pUsrp;
}
iRet = finishBatch(pAction);
@@ -950,7 +950,7 @@ finalize_it:
* rgerhards, 2009-04-22
*/
static rsRetVal
-processBatchMain(action_t *pAction, batch_t *pBatch)
+processBatchMain(action_t *pAction, batch_t *pBatch, int *pbShutdownImmediate)
{
DEFiRet;
@@ -964,7 +964,7 @@ processBatchMain(action_t *pAction, batch_t *pBatch)
d_pthread_mutex_lock(&pAction->mutActExec);
pthread_cleanup_push(mutexCancelCleanup, &pAction->mutActExec);
- iRet = processAction(pAction, pBatch);
+ iRet = processAction(pAction, pBatch, pbShutdownImmediate);
pthread_cleanup_pop(1); /* unlock mutex */