*/
int fd_takeover(int fd, void *expected_owner);
-/* lock used by FD migration */
-#ifndef HA_HAVE_CAS_DW
-__decl_thread(extern HA_RWLOCK_T fd_mig_lock);
-#endif
-
ssize_t fd_write_frag_line(int fd, size_t maxlen, const struct ist pfx[], size_t npfx, const struct ist msg[], size_t nmsg, int nl);
/* close all FDs starting from <start> */
_HA_ATOMIC_DEC(&ha_used_fds);
}
-#ifndef HA_HAVE_CAS_DW
-__decl_thread(__decl_rwlock(fd_mig_lock));
-#endif
-
/* Deletes an FD from the fdsets. The file descriptor is also closed, possibly
* asynchronously. Only the owning thread may do this.
*/
*/
HA_ATOMIC_OR(&fdtab[fd].running_mask, tid_bit);
-#ifndef HA_HAVE_CAS_DW
- HA_RWLOCK_WRLOCK(OTHER_LOCK, &fd_mig_lock);
-#endif
HA_ATOMIC_STORE(&fdtab[fd].thread_mask, 0);
-#ifndef HA_HAVE_CAS_DW
- HA_RWLOCK_WRUNLOCK(OTHER_LOCK, &fd_mig_lock);
-#endif
if (fd_clr_running(fd) == 0)
_fd_delete_orphan(fd);
}