MEDIUM: poller: use atomic ops to update the fdtab mask
We don't need to lock the fdtab[].lock anymore since we only have one
modification left (update update_mask). Let's use an atomic AND instead.
diff --git a/src/ev_epoll.c b/src/ev_epoll.c
index 3edaf28..b98ca8c 100644
--- a/src/ev_epoll.c
+++ b/src/ev_epoll.c
@@ -79,10 +79,8 @@
continue;
}
- HA_SPIN_LOCK(FD_LOCK, &fdtab[fd].lock);
- fdtab[fd].update_mask &= ~tid_bit;
en = fdtab[fd].state;
- HA_SPIN_UNLOCK(FD_LOCK, &fdtab[fd].lock);
+ HA_ATOMIC_AND(&fdtab[fd].update_mask, ~tid_bit);
if (fdtab[fd].polled_mask & tid_bit) {
if (!(fdtab[fd].thread_mask & tid_bit) || !(en & FD_EV_POLLED_RW)) {