LInux fork/clone can be interrupted by a signal which causes the syscall to restart. The can go on forever with periodic signals. Beware
-
-
Replying to @CarlosODonell @patofiero
IIRC the kernel handles that specially with SIGPROF, or maybe only the RHEL kernel does because the patch was rejected upstream
1 reply 0 retweets 0 likes -
Replying to @siddhesh_p @patofiero
FYI
@musllibc should be immune to this issue and glibc easily could be too: https://git.musl-libc.org/cgit/musl/tree/src/process/fork.c#n19 …1 reply 0 retweets 0 likes -
I wasn't trying to work around this; rather, safely updating tid & robust list at fork seems to require blocking sigs
1 reply 0 retweets 0 likes -
Replying to @RichFelker @siddhesh_p
Can the updates be done without blocking signals? Blocking obviously increases latency.
1 reply 0 retweets 0 likes -
No, because a signal handler could run after fork in the child, but before they're set correctly.
2 replies 0 retweets 0 likes
If you refrain from using SYS_fork, instead use SYS_clone w/CLONE_CHILD_SETTID, then lazy robustlist init may suffice
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.