unsigned int e = epoll_events[count].events;
fd = epoll_events[count].data.fd;
- if (!fdtab[fd].owner)
+ if (!fdtab[fd].owner || !(fdtab[fd].process_mask & tid_bit))
continue;
/* it looks complicated but gcc can optimize it away when constants
unsigned int n = 0;
fd = kev[count].ident;
- if (!fdtab[fd].owner)
+ if (!fdtab[fd].owner || !(fdtab[fd].process_mask & tid_bit))
continue;
if (kev[count].filter == EVFILT_READ) {
continue;
for (count = 0, fd = fds * 8*sizeof(**fd_evts); count < 8*sizeof(**fd_evts) && fd < maxfd; count++, fd++) {
+
+ if (!fdtab[fd].owner || !(fdtab[fd].process_mask & tid_bit))
+ continue;
+
sr = (rn >> count) & 1;
sw = (wn >> count) & 1;
if ((sr|sw)) {
/* if we specify read first, the accepts and zero reads will be
* seen first. Moreover, system buffers will be flushed faster.
*/
- if (!fdtab[fd].owner)
+ if (!fdtab[fd].owner || !(fdtab[fd].process_mask & tid_bit))
continue;
if (FD_ISSET(fd, tmp_evts[DIR_RD]))