possible race condition (in single epoll_wait return):
timer expires for fd x, closes it and frees its memory
fd x has input
another variation:
fd x has no more input and we close it
we accept a different connection on fd x
timer expires for fd x, closes it and frees its memory
possible race condition (in single epoll_wait return): timer expires for fd x, closes it and frees its memory fd x has input
another variation: fd x has no more input and we close it we accept a different connection on fd x timer expires for fd x, closes it and frees its memory