fdtab[fd].linger_risk = 0;
fdtab[fd].cloned = 0;
fdtab[fd].cache = 0;
+ fdtab[fd].process_mask = 0; // unused for now
SPIN_UNLOCK(FD_LOCK, &fdtab[fd].lock);
SPIN_LOCK(FDTAB_LOCK, &fdtab_lock);
struct fdtab {
void (*iocb)(int fd); /* I/O handler */
void *owner; /* the connection or listener associated with this fd, NULL if closed */
+ unsigned long process_mask; /* mask of thread IDs authorized to process the task */
#ifdef USE_THREAD
HA_SPINLOCK_T lock;
#endif
fdtab[fd].owner = NULL;
fdtab[fd].updated = 0;
fdtab[fd].new = 0;
+ fdtab[fd].process_mask = 0;
if (do_close)
close(fd);
SPIN_UNLOCK(FD_LOCK, &fdtab[fd].lock);