MEDIUM: fd/poller: turn update_mask to group-local IDs
From now on, the FD's update_mask only refers to local thread IDs. However,
there remains a limitation, in updt_fd_polling(), we temporarily have to
check and set shared FDs against .thread_mask, which still contains global
ones. As such, nbtgroups > 1 may break (but this is not yet supported without
special build options).
diff --git a/src/ev_kqueue.c b/src/ev_kqueue.c
index 79ddf7d..70ee2ad 100644
--- a/src/ev_kqueue.c
+++ b/src/ev_kqueue.c
@@ -102,7 +102,7 @@
for (updt_idx = 0; updt_idx < fd_nbupdt; updt_idx++) {
fd = fd_updt[updt_idx];
- _HA_ATOMIC_AND(&fdtab[fd].update_mask, ~tid_bit);
+ _HA_ATOMIC_AND(&fdtab[fd].update_mask, ~ti->ltid_bit);
if (!fdtab[fd].owner) {
activity[tid].poll_drop_fd++;
continue;
@@ -119,7 +119,7 @@
fd = -fd -4;
if (fd == -1)
break;
- if (fdtab[fd].update_mask & tid_bit)
+ if (fdtab[fd].update_mask & ti->ltid_bit)
done_update_polling(fd);
else
continue;