Sorry, forgot the patch adding some debug stuff, fixed :)

regards,
-ap
diff -Purp rsyslog-5.8.6.org/runtime/modules.c rsyslog-5.8.6/runtime/modules.c
--- rsyslog-5.8.6.org/runtime/modules.c 2011-10-21 11:53:02.000000000 +0200
+++ rsyslog-5.8.6/runtime/modules.c     2011-11-02 20:32:10.000000000 +0100
@@ -667,7 +667,9 @@ modUnlinkAndDestroy(modInfo_t **ppThis)
        pThis = *ppThis;
        assert(pThis != NULL);
 
+       dbgprintf("locking mutLoadUnload ...\n");
        pthread_mutex_lock(&mutLoadUnload);
+       dbgprintf("mutLoadUnload locked\n");
 
        /* first check if we are permitted to unload */
        if(pThis->eType == eMOD_LIB) {
@@ -704,6 +706,7 @@ modUnlinkAndDestroy(modInfo_t **ppThis)
 
 finalize_it:
        pthread_mutex_unlock(&mutLoadUnload);
+       dbgprintf("mutLoadUnload released\n");
        RETiRet;
 }
 
@@ -779,7 +782,9 @@ Load(uchar *pModName)
        assert(pModName != NULL);
        dbgprintf("Requested to load module '%s'\n", pModName);
 
+       dbgprintf("locking mutLoadUnload ...\n");
        pthread_mutex_lock(&mutLoadUnload);
+       dbgprintf("mutLoadUnload locked\n");
 
        iModNameLen = strlen((char *) pModName);
        if(iModNameLen > 3 && !strcmp((char *) pModName + iModNameLen - 3, 
".so")) {
@@ -904,6 +909,7 @@ Load(uchar *pModName)
 
 finalize_it:
        pthread_mutex_unlock(&mutLoadUnload);
+       dbgprintf("mutLoadUnload released\n");
        RETiRet;
 }
 
diff -Purp rsyslog-5.8.6.org/runtime/obj.c rsyslog-5.8.6/runtime/obj.c
--- rsyslog-5.8.6.org/runtime/obj.c     2011-10-21 11:53:02.000000000 +0200
+++ rsyslog-5.8.6/runtime/obj.c 2011-11-02 20:35:09.000000000 +0100
@@ -1130,7 +1130,9 @@ UseObj(char *srcFile, uchar *pObjName, u
 
 
        /* DEV debug only: dbgprintf("source file %s requests object '%s', 
ifIsLoaded %d\n", srcFile, pObjName, pIf->ifIsLoaded); */
+       dbgprintf("locking mutObjGlobalOp ...\n");
        pthread_mutex_lock(&mutObjGlobalOp);
+       dbgprintf("mutObjGlobalOp locked\n");
 
        if(pIf->ifIsLoaded == 1) {
                ABORT_FINALIZE(RS_RET_OK); /* we are already set */
@@ -1172,7 +1174,8 @@ UseObj(char *srcFile, uchar *pObjName, u
 
 finalize_it:
        pthread_mutex_unlock(&mutObjGlobalOp);
-
+       dbgprintf("mutObjGlobalOp released\n");
+  
        if(pStr != NULL)
                rsCStrDestruct(&pStr);
 
@@ -1194,7 +1197,9 @@ ReleaseObj(char *srcFile, uchar *pObjNam
 
 
        /* dev debug only dbgprintf("source file %s releasing object '%s', 
ifIsLoaded %d\n", srcFile, pObjName, pIf->ifIsLoaded); */
+       dbgprintf("locking mutObjGlobalOp ...\n");
        pthread_mutex_lock(&mutObjGlobalOp);
+       dbgprintf("mutObjGlobalOp locked\n");
 
        if(pObjFile == NULL)
                FINALIZE; /* if it is not a lodable module, we do not need to 
do anything... */
@@ -1216,6 +1221,7 @@ ReleaseObj(char *srcFile, uchar *pObjNam
 
 finalize_it:
        pthread_mutex_unlock(&mutObjGlobalOp);
+       dbgprintf("mutObjGlobalOp released\n");
 
        if(pStr != NULL)
                rsCStrDestruct(&pStr);
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com

Reply via email to