Unconditionally adding 1ms to round up is wrong, the 1 should not be added if the duration is already an exact number of ms, especially if the provided duration is 0, which happens either when the user inputted 0 as a timeout, of if there is a timer that has already fired when the method is invoked.
This is faulty:
https://github.com/Smithay/calloop/blob/e404c80b101df1b866a82ac696e00b2e7bd3844e/src/sys/epoll.rs#L83-L85
Unconditionally adding 1ms to round up is wrong, the 1 should not be added if the duration is already an exact number of ms, especially if the provided duration is 0, which happens either when the user inputted 0 as a timeout, of if there is a timer that has already fired when the method is invoked.