summaryrefslogtreecommitdiffstats
path: root/runtime/wtp.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-07-08 16:58:53 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-07-08 16:58:53 +0200
commit9f286c0c4c21128c66305166ae379d3f7b07f673 (patch)
tree4c54a382a3489c088518fa504c0d5fede4783589 /runtime/wtp.c
parente13e417f4c47b8fc8d3163f38ede254a42e00a6e (diff)
downloadrsyslog-9f286c0c4c21128c66305166ae379d3f7b07f673.tar.gz
rsyslog-9f286c0c4c21128c66305166ae379d3f7b07f673.tar.xz
rsyslog-9f286c0c4c21128c66305166ae379d3f7b07f673.zip
optimizing queue thread handling
... first commit in a series of more. Makes worker threads detached. Needs more testing (will be done soon) and if it works as expected, we can further reduce code.
Diffstat (limited to 'runtime/wtp.c')
-rw-r--r--runtime/wtp.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/runtime/wtp.c b/runtime/wtp.c
index 81e4446d..59553984 100644
--- a/runtime/wtp.c
+++ b/runtime/wtp.c
@@ -493,11 +493,12 @@ wtpWorker(void *arg) /* the arg is actually a wti object, even though we are in
static rsRetVal
wtpStartWrkr(wtp_t *pThis, int bLockMutex)
{
- DEFiRet;
DEFVARS_mutexProtection;
wti_t *pWti;
int i;
int iState;
+ pthread_attr_t attr;
+ DEFiRet;
ISOBJ_TYPE_assert(pThis, wtp);
@@ -521,7 +522,10 @@ wtpStartWrkr(wtp_t *pThis, int bLockMutex)
pWti = pThis->pWrkr[i];
wtiSetState(pWti, eWRKTHRD_RUN_CREATED, 0, LOCK_MUTEX);
- iState = pthread_create(&(pWti->thrdID), NULL, wtpWorker, (void*) pWti);
+ pthread_attr_init(&attr);
+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+ iState = pthread_create(&(pWti->thrdID), &attr, wtpWorker, (void*) pWti);
+ pthread_attr_destroy(&attr); /* TODO: we could globally reuse such an attribute 2009-07-08 */
dbgprintf("%s: started with state %d, num workers now %d\n",
wtpGetDbgHdr(pThis), iState, pThis->iCurNumWrkThrd);