(catch 'system-error (lambda () (match (clone (logior CLONE_NEWUSER SIGCHLD)) (0 (gc) ;create a garbage collection thread (sigaction SIGPIPE SIG_IGN) (unshare CLONE_THREAD) (primitive-exit 0)) (pid (match (waitpid pid) ((_ . status) (zero? status)))))) (lambda args (system-error-errno args)))