diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2013-09-09 15:21:29 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2013-09-09 15:21:29 +0200 |
commit | 452821e4fa2e60ae7fc5bf0a94e394e81289569e (patch) | |
tree | 5cf5693b0b8f1234e2992e3cad9b4cbf3301a2e0 | |
parent | fbc737d6504448af7633412ef56c3cbeb2d28587 (diff) | |
download | rsyslog-452821e4fa2e60ae7fc5bf0a94e394e81289569e.tar.gz rsyslog-452821e4fa2e60ae7fc5bf0a94e394e81289569e.tar.bz2 rsyslog-452821e4fa2e60ae7fc5bf0a94e394e81289569e.zip |
impstats: reset stats counters no matter if CEE or regular mode is used
-rw-r--r-- | runtime/statsobj.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/runtime/statsobj.c b/runtime/statsobj.c index 0f78ebba..fd091f8d 100644 --- a/runtime/statsobj.c +++ b/runtime/statsobj.c @@ -167,6 +167,21 @@ finalize_it: RETiRet; } +static inline void +resetResettableCtr(ctr_t *pCtr) +{ + if(pCtr->flags & CTR_FLAG_RESETTABLE) { + switch(pCtr->ctrType) { + case ctrType_IntCtr: + *(pCtr->val.pIntCtr) = 0; + break; + case ctrType_Int: + *(pCtr->val.pInt) = 0; + break; + } + } +} + /* get all the object's countes together as CEE. */ static rsRetVal getStatsLineCEE(statsobj_t *pThis, cstr_t **ppcstr, int cee_cookie) @@ -210,7 +225,7 @@ getStatsLineCEE(statsobj_t *pThis, cstr_t **ppcstr, int cee_cookie) } else { cstrAppendChar(pcstr, '}'); } - + resetResettableCtr(pCtr); } pthread_mutex_unlock(&pThis->mutCtr); @@ -242,14 +257,13 @@ getStatsLine(statsobj_t *pThis, cstr_t **ppcstr) switch(pCtr->ctrType) { case ctrType_IntCtr: rsCStrAppendInt(pcstr, *(pCtr->val.pIntCtr)); // TODO: OK????? - *(pCtr->val.pIntCtr) = 0; break; case ctrType_Int: rsCStrAppendInt(pcstr, *(pCtr->val.pInt)); - *(pCtr->val.pInt) = 0; break; } cstrAppendChar(pcstr, ' '); + resetResettableCtr(pCtr); } pthread_mutex_unlock(&pThis->mutCtr); |