CLONE_SIGHAND
if (clone_flags & CLONE_SIGHAND) {
if ((clone_flags & CLONE_THREAD) && !(clone_flags & CLONE_SIGHAND))
if ((clone_flags & CLONE_SIGHAND) && !(clone_flags & CLONE_VM))
unsigned long flags = CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|
if ((kargs->flags & (CLONE_SIGHAND | CLONE_CLEAR_SIGHAND)) ==
(CLONE_SIGHAND | CLONE_CLEAR_SIGHAND))
if (unshare_flags & ~(CLONE_THREAD|CLONE_FS|CLONE_NEWNS|CLONE_SIGHAND|
if (unshare_flags & (CLONE_THREAD | CLONE_SIGHAND | CLONE_VM)) {
if (unshare_flags & (CLONE_SIGHAND | CLONE_VM)) {
unshare_flags |= CLONE_SIGHAND;
if (unshare_flags & CLONE_SIGHAND)
CLONE_THREAD | CLONE_SIGHAND,
args.flags |= CLONE_CLEAR_SIGHAND | CLONE_SIGHAND;
CLONE_SIGHAND | CLONE_THREAD | CLONE_SYSVSEM |
CLONE_SIGHAND | CLONE_THREAD | CLONE_SYSVSEM |
pid = clone(f, stack + PAGE_SIZE, CLONE_THREAD|CLONE_SIGHAND|CLONE_VM, (void *)1);
const int THREAD_CLONE_FLAGS = CLONE_THREAD | CLONE_SIGHAND | CLONE_FS | CLONE_VM | CLONE_FILES;