summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-08-18 11:03:22 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-08-18 11:03:22 +0200
commitac05d140f1bd5c94633598415b7a51f70562249b (patch)
tree826641f943d570b917582f6cf619b4824c777fe6 /runtime
parent8724b28d110106fb08e47433f608220d924a4d8a (diff)
parent224e87be0e57532baa658ec6b9656a879ccc2fa4 (diff)
downloadrsyslog-ac05d140f1bd5c94633598415b7a51f70562249b.tar.gz
rsyslog-ac05d140f1bd5c94633598415b7a51f70562249b.tar.xz
rsyslog-ac05d140f1bd5c94633598415b7a51f70562249b.zip
Merge branch 'v4-devel' into beta
Diffstat (limited to 'runtime')
-rw-r--r--runtime/stream.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/runtime/stream.c b/runtime/stream.c
index 605a9771..1b9beb5b 100644
--- a/runtime/stream.c
+++ b/runtime/stream.c
@@ -628,7 +628,8 @@ static rsRetVal strmConstructFinalize(strm_t *pThis)
pthread_cond_init(&pThis->notEmpty, 0);
pthread_cond_init(&pThis->isEmpty, 0);
pThis->iCnt = pThis->iEnq = pThis->iDeq = 0;
- for(i = 0 ; i < STREAM_ASYNC_NUMBUFS ; ++i) {
+ //for(i = 0 ; i < STREAM_ASYNC_NUMBUFS ; ++i) {
+ for(i = 0 ; i < 1 ; ++i) { // HOTFIX!!!
CHKmalloc(pThis->asyncBuf[i].pBuf = (uchar*) malloc(sizeof(uchar) * pThis->sIOBufSize));
}
pThis->pIOBuf = pThis->asyncBuf[0].pBuf;
@@ -844,7 +845,10 @@ dbgprintf("XXX: doAsyncWriteInternal: strm %p, len %ld\n", pThis, (long) lenBuf)
d_pthread_cond_wait(&pThis->notFull, &pThis->mut);
pThis->asyncBuf[pThis->iEnq % STREAM_ASYNC_NUMBUFS].lenBuf = lenBuf;
- pThis->pIOBuf = pThis->asyncBuf[++pThis->iEnq % STREAM_ASYNC_NUMBUFS].pBuf;
+ pThis->asyncBuf[pThis->iEnq % STREAM_ASYNC_NUMBUFS].pBuf = pThis->pIOBuf;
+ //pThis->pIOBuf = pThis->asyncBuf[++pThis->iEnq % STREAM_ASYNC_NUMBUFS].pBuf;
+ ++pThis->iEnq;
+ CHKmalloc(pThis->pIOBuf = (uchar*) malloc(sizeof(uchar) * pThis->sIOBufSize));
pThis->bDoTimedWait = 0; /* everything written, no need to timeout partial buffer writes */
if(++pThis->iCnt == 1)
@@ -938,6 +942,8 @@ asyncWriterThread(void *pPtr)
iDeq = pThis->iDeq++ % STREAM_ASYNC_NUMBUFS;
doWriteInternal(pThis, pThis->asyncBuf[iDeq].pBuf, pThis->asyncBuf[iDeq].lenBuf);
// TODO: error check????? 2009-07-06
+ free(pThis->asyncBuf[iDeq].pBuf);
+ pThis->asyncBuf[iDeq].pBuf = NULL;
--pThis->iCnt;
if(pThis->iCnt < STREAM_ASYNC_NUMBUFS) {