/* Disable processing recv events on fd <fd> */
static inline void fd_stop_recv(int fd)
{
+ BUG_ON_HOT(fdtab[fd].owner == NULL);
if (!(fdtab[fd].state & FD_EV_ACTIVE_R) ||
!HA_ATOMIC_BTR(&fdtab[fd].state, FD_EV_ACTIVE_R_BIT))
return;
/* Disable processing send events on fd <fd> */
static inline void fd_stop_send(int fd)
{
+ BUG_ON_HOT(fdtab[fd].owner == NULL);
if (!(fdtab[fd].state & FD_EV_ACTIVE_W) ||
!HA_ATOMIC_BTR(&fdtab[fd].state, FD_EV_ACTIVE_W_BIT))
return;
{
uint old, new;
+ BUG_ON_HOT(fdtab[fd].owner == NULL);
old = fdtab[fd].state;
do {
if (!(old & FD_EV_ACTIVE_RW))
static inline void fd_cant_recv(const int fd)
{
/* marking ready never changes polled status */
+ BUG_ON_HOT(fdtab[fd].owner == NULL);
if (!(fdtab[fd].state & FD_EV_READY_R) ||
!HA_ATOMIC_BTR(&fdtab[fd].state, FD_EV_READY_R_BIT))
return;
static inline void fd_may_recv(const int fd)
{
/* marking ready never changes polled status */
+ BUG_ON_HOT(fdtab[fd].owner == NULL);
if ((fdtab[fd].state & FD_EV_READY_R) ||
HA_ATOMIC_BTS(&fdtab[fd].state, FD_EV_READY_R_BIT))
return;
*/
static inline void fd_cond_recv(const int fd)
{
+ BUG_ON_HOT(fdtab[fd].owner == NULL);
if ((fdtab[fd].state & (FD_EV_ACTIVE_R|FD_EV_READY_R)) == 0)
HA_ATOMIC_BTS(&fdtab[fd].state, FD_EV_READY_R_BIT);
}
*/
static inline void fd_cond_send(const int fd)
{
+ BUG_ON_HOT(fdtab[fd].owner == NULL);
if ((fdtab[fd].state & (FD_EV_ACTIVE_W|FD_EV_READY_W)) == 0)
HA_ATOMIC_BTS(&fdtab[fd].state, FD_EV_READY_W_BIT);
}
*/
static inline void fd_may_both(const int fd)
{
+ BUG_ON_HOT(fdtab[fd].owner == NULL);
HA_ATOMIC_OR(&fdtab[fd].state, FD_EV_READY_RW);
}
static inline void fd_may_send(const int fd)
{
/* marking ready never changes polled status */
+ BUG_ON_HOT(fdtab[fd].owner == NULL);
if ((fdtab[fd].state & FD_EV_READY_W) ||
HA_ATOMIC_BTS(&fdtab[fd].state, FD_EV_READY_W_BIT))
return;
/* Prepare FD <fd> to try to receive */
static inline void fd_want_recv(int fd)
{
+ BUG_ON_HOT(fdtab[fd].owner == NULL);
if ((fdtab[fd].state & FD_EV_ACTIVE_R) ||
HA_ATOMIC_BTS(&fdtab[fd].state, FD_EV_ACTIVE_R_BIT))
return;
*/
static inline void fd_want_recv_safe(int fd)
{
+ BUG_ON_HOT(fdtab[fd].owner == NULL);
if ((fdtab[fd].state & FD_EV_ACTIVE_R) ||
HA_ATOMIC_BTS(&fdtab[fd].state, FD_EV_ACTIVE_R_BIT))
return;
/* Prepare FD <fd> to try to send */
static inline void fd_want_send(int fd)
{
+ BUG_ON_HOT(fdtab[fd].owner == NULL);
if ((fdtab[fd].state & FD_EV_ACTIVE_W) ||
HA_ATOMIC_BTS(&fdtab[fd].state, FD_EV_ACTIVE_W_BIT))
return;