You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reading signal(7), it seems hard to avoid EINTR in all cases. In particular, it seems that SIGCONT can generate EINTR.
It's also a bit unclear to me what happens with signals and io_uring operations. I would expect that the io_uring_enter call would return EINTR rather than the individual operations, so maybe the retry logic above isn't even needed. That code has been there since the very first commit by @avsm; I don't know if it was needed for something.
System calls need to be retried if they return EINTR (unless this was due to them being cancelled; you don't always get
ECANCELED
in that case).There is some handling already, e.g. here's eio_linux handling EINTR for rw ops:
eio/lib_eio_linux/eio_linux.ml
Lines 519 to 527 in 85841dc
Check if we need this in more places, and also check the eio_luv backend.
@hannesm notes in mirage/mirage-crypto#155 (comment) that
getrandom
needs this too.The text was updated successfully, but these errors were encountered: