:- use_module(library(unix)).(can be autoloaded)
fork() is the only way to create new processes and fork/1
is a simple direct interface to it.
permission_error(fork, process, main)is raised if the calling thread is not the only thread in the process. Forking a Prolog process with threads will typically deadlock because only the calling thread is cloned in the fork, while all thread synchronization are cloned.