Unrelated to the previous discussion, and applicable to the base PHP code
in mod_files.c too, another observation:
Some syscalls can fail with EINTR, when a signal hits while within the
kernel. This is especially true for flock(LOCK_EX) because in the
already-locked case the second call will go to sleep for a while waiting
for the lock to clear. But it is also possible, I think, for the
pread/read/write calls. The usual handling for the case (-1 return && errno
== EINTR) is to just repeat the call in a while loop. I think that at least
doing so for the LOCK_EX calls, would be prudent.
best regards
Patrick