(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)))