diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2009-06-30 18:45:41 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2009-06-30 18:45:41 +0200 |
commit | aaffc4281e0b26f419a3fc341461f2fc479080b8 (patch) | |
tree | f605da690f7e095c4a0bba4139c5f45cff687fef /runtime/obj-types.h | |
parent | e397c34d2a6c7c1e4c116fd2363cb173e32eb2a2 (diff) | |
download | rsyslog-aaffc4281e0b26f419a3fc341461f2fc479080b8.tar.gz rsyslog-aaffc4281e0b26f419a3fc341461f2fc479080b8.tar.xz rsyslog-aaffc4281e0b26f419a3fc341461f2fc479080b8.zip |
introduced a new way of handling the RcvFrom property
... plus a fix for a long-time bug in obj-types.h. That lead to
the object pointer only then to become NULL when the object was
actually destructed, I discovered this issue during
introduction of the pRcvFrom property in msg_t, but it potentially had other
effects, too. I am not sure if some experienced instability resulted from this
bug OR if its fix will cause harm to so-far "correctly" running code. The later
may very well be. Thus I will change it only for the current branch and also
the beta, but not in all old builds. Let's see how things evolve.
Diffstat (limited to 'runtime/obj-types.h')
-rw-r--r-- | runtime/obj-types.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/runtime/obj-types.h b/runtime/obj-types.h index 6c1381ac..e1b54d4f 100644 --- a/runtime/obj-types.h +++ b/runtime/obj-types.h @@ -293,6 +293,15 @@ rsRetVal objName##ClassExit(void) \ ISOBJ_TYPE_assert(pThis, OBJ); \ pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &iCancelStateSave); +/* note: there was a long-time bug in the macro below that lead to *ppThis = NULL + * only when the object was actually destructed. I discovered this issue during + * introduction of the pRcvFrom property in msg_t, but it potentially had other + * effects, too. I am not sure if some experienced instability resulted from this + * bug OR if its fix will cause harm to so-far "correctly" running code. The later + * may very well be. Thus I will change it only for the current branch and also + * the beta, but not in all old builds. Let's see how things evolve. + * rgerhards, 2009-06-30 + */ #define ENDobjDestruct(OBJ) \ goto finalize_it; /* prevent compiler warning ;) */ \ /* no more code here! */ \ @@ -300,8 +309,8 @@ rsRetVal objName##ClassExit(void) \ if(pThis != NULL) { \ obj.DestructObjSelf((obj_t*) pThis); \ free(pThis); \ - *ppThis = NULL; \ } \ + *ppThis = NULL; \ pthread_setcancelstate(iCancelStateSave, NULL); \ RETiRet; \ } |