summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2012-05-16 18:30:40 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2012-05-16 18:30:40 +0200
commitfa0a859d212bbe678fde619769c421ac5661347d (patch)
tree90bf9fcfb4268e270ccdd298147eb2f83cd1c494
parent03e9a91731aa601475b7af1348b78284cf872684 (diff)
downloadrsyslog-fa0a859d212bbe678fde619769c421ac5661347d.tar.gz
rsyslog-fa0a859d212bbe678fde619769c421ac5661347d.tar.xz
rsyslog-fa0a859d212bbe678fde619769c421ac5661347d.zip
regression: tcpsrv.c always activated first worker, what lead to hang
... if more than 3 fds were to be read at the same time.
-rw-r--r--tcpsrv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tcpsrv.c b/tcpsrv.c
index 8a931afc..58da359d 100644
--- a/tcpsrv.c
+++ b/tcpsrv.c
@@ -674,7 +674,7 @@ processWorkset(tcpsrv_t *pThis, nspoll_t *pPoll, int numEntries, nsd_epworkset_t
} else {
pthread_mutex_lock(&wrkrMut);
/* check if there is a free worker */
- for(i = 0 ; (i < wrkrMax) && (wrkrInfo[i].pSrv != NULL) && (wrkrInfo[i].enabled == 0) ; ++i)
+ for(i = 0 ; (i < wrkrMax) && ((wrkrInfo[i].pSrv != NULL) || (wrkrInfo[i].enabled == 0)) ; ++i)
/*do search*/;
if(i < wrkrMax) {
/* worker free -> use it! */