mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 15:47:01 +02:00
MINOR: fd: Add a counter of used fds.
Add a new counter, ha_used_fds, that let us know how many file descriptors we're currently using.
This commit is contained in:
parent
8a9d55bb9b
commit
7c49d2e213
@ -49,6 +49,8 @@ extern THREAD_LOCAL int fd_nbupdt; // number of updates in the list
|
||||
|
||||
extern int poller_wr_pipe[MAX_THREADS];
|
||||
|
||||
extern volatile int ha_used_fds; // Number of FDs we're currently using
|
||||
|
||||
__decl_hathreads(extern HA_RWLOCK_T __attribute__((aligned(64))) fdcache_lock); /* global lock to protect fd_cache array */
|
||||
|
||||
/* Deletes an FD from the fdsets.
|
||||
@ -555,6 +557,7 @@ static inline void fd_insert(int fd, void *owner, void (*iocb)(int fd), unsigned
|
||||
*/
|
||||
if (locked)
|
||||
HA_SPIN_UNLOCK(FD_LOCK, &fdtab[fd].lock);
|
||||
_HA_ATOMIC_ADD(&ha_used_fds, 1);
|
||||
}
|
||||
|
||||
/* Computes the bounded poll() timeout based on the next expiration timer <next>
|
||||
|
3
src/fd.c
3
src/fd.c
@ -186,6 +186,8 @@ THREAD_LOCAL int fd_nbupdt = 0; // number of updates in the list
|
||||
THREAD_LOCAL int poller_rd_pipe = -1; // Pipe to wake the thread
|
||||
int poller_wr_pipe[MAX_THREADS]; // Pipe to wake the threads
|
||||
|
||||
volatile int ha_used_fds = 0; // Number of FD we're currently using
|
||||
|
||||
#define _GET_NEXT(fd, off) ((struct fdlist_entry *)(void *)((char *)(&fdtab[fd]) + off))->next
|
||||
#define _GET_PREV(fd, off) ((struct fdlist_entry *)(void *)((char *)(&fdtab[fd]) + off))->prev
|
||||
/* adds fd <fd> to fd list <list> if it was not yet in it */
|
||||
@ -387,6 +389,7 @@ static void fd_dodelete(int fd, int do_close)
|
||||
if (do_close) {
|
||||
polled_mask[fd] = 0;
|
||||
close(fd);
|
||||
_HA_ATOMIC_SUB(&ha_used_fds, 1);
|
||||
}
|
||||
if (locked)
|
||||
HA_SPIN_UNLOCK(FD_LOCK, &fdtab[fd].lock);
|
||||
|
Loading…
Reference in New Issue
Block a user