summaryrefslogtreecommitdiffstats
path: root/runtime/nsdpoll_ptcp.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2011-01-26 15:37:07 +0100
committerRainer Gerhards <rgerhards@adiscon.com>2011-01-26 15:37:07 +0100
commit3049f535fff9d351480bceb7ea82667176a7c8a2 (patch)
treed633ee9f9801ad882e66504a18e07fac7c3d38f8 /runtime/nsdpoll_ptcp.c
parent0e4373a6329a1f74dda8eceed5fd18ce92fe0d10 (diff)
downloadrsyslog-3049f535fff9d351480bceb7ea82667176a7c8a2.tar.gz
rsyslog-3049f535fff9d351480bceb7ea82667176a7c8a2.tar.xz
rsyslog-3049f535fff9d351480bceb7ea82667176a7c8a2.zip
interim commit: refactored epoll processing
this is a perquisite for multi-threading the input handler
Diffstat (limited to 'runtime/nsdpoll_ptcp.c')
-rw-r--r--runtime/nsdpoll_ptcp.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/runtime/nsdpoll_ptcp.c b/runtime/nsdpoll_ptcp.c
index f22c6cb6..26810b7d 100644
--- a/runtime/nsdpoll_ptcp.c
+++ b/runtime/nsdpoll_ptcp.c
@@ -204,7 +204,7 @@ finalize_it:
* rgerhards, 2009-11-18
*/
static rsRetVal
-Wait(nsdpoll_t *pNsdpoll, int timeout, int *numEntries, int idRdy[], void *ppUsr[]) {
+Wait(nsdpoll_t *pNsdpoll, int timeout, int *numEntries, nsd_epworkset_t workset[]) {
nsdpoll_ptcp_t *pThis = (nsdpoll_ptcp_t*) pNsdpoll;
nsdpoll_epollevt_lst_t *pOurEvt;
struct epoll_event event[128];
@@ -212,8 +212,7 @@ Wait(nsdpoll_t *pNsdpoll, int timeout, int *numEntries, int idRdy[], void *ppUsr
int i;
DEFiRet;
- assert(idRdy != NULL);
- assert(ppUsr != NULL);
+ assert(workset != NULL);
if(*numEntries > 128)
*numEntries = 128;
@@ -234,8 +233,8 @@ Wait(nsdpoll_t *pNsdpoll, int timeout, int *numEntries, int idRdy[], void *ppUsr
dbgprintf("epoll returned %d entries\n", nfds);
for(i = 0 ; i < nfds ; ++i) {
pOurEvt = (nsdpoll_epollevt_lst_t*) event[i].data.u64;
- idRdy[i] = pOurEvt->id;
- ppUsr[i] = pOurEvt->pUsr;
+ workset[i].id = pOurEvt->id;
+ workset[i].pUsr = pOurEvt->pUsr;
dbgprintf("epoll push ppusr[%d]: %p\n", i, pOurEvt->pUsr);
}
*numEntries = nfds;