mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
MINOR: fd: make fd_clr_running() return the remaining running mask
We'll need to know that a thread is the last one to use an fd, so let's make fd_clr_running() return the remaining bits after removal. Note that in practice we're only interested in knowing if it's zero but the compiler doesn't make use of the clags after the AND and emits a CMPXCHG anyway :-/ This will need to be backported to 2.2 to fix an issue.
This commit is contained in:
parent
1e8433f594
commit
6e8e10b415
@ -347,10 +347,12 @@ static inline void fd_set_running_excl(int fd)
|
|||||||
old_mask = 0;
|
old_mask = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* remove tid_bit from the fd's running mask and returns the bits that remain
|
||||||
static inline void fd_clr_running(int fd)
|
* after the atomic operation.
|
||||||
|
*/
|
||||||
|
static inline long fd_clr_running(int fd)
|
||||||
{
|
{
|
||||||
_HA_ATOMIC_AND(&fdtab[fd].running_mask, ~tid_bit);
|
return _HA_ATOMIC_AND(&fdtab[fd].running_mask, ~tid_bit);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update events seen for FD <fd> and its state if needed. This should be
|
/* Update events seen for FD <fd> and its state if needed. This should be
|
||||||
|
Loading…
x
Reference in New Issue
Block a user