Fork: Difference between revisions

Content added Content deleted
(Adding R implementation)
Line 1,310: Line 1,310:
else:
else:
# child code</lang>
# child code</lang>

=={{header|R}}==
Two examples. The first is a higher level interface to fork system call. The second is a lower level interface for forking.
<lang R>
p <- parallel::mcparallel({
Sys.sleep(1)
cat("\tChild pid: ", Sys.getpid(), "\n")
TRUE
})
cat("Main pid: ", Sys.getpid(), "\n")
parallel::mccollect(p)

p <- parallel:::mcfork()
if (inherits(p, "masterProcess")) {
Sys.sleep(1)
cat("\tChild pid: ", Sys.getpid(), "\n")
parallel:::mcexit(, TRUE)
}
cat("Main pid: ", Sys.getpid(), "\n")
unserialize(parallel:::readChildren(2))</lang>

Output:
<pre>
Main pid: 331042
Child pid: 331052
$`331052`
[1] TRUE

Main pid: 331042
Child pid: 331054
[1] TRUE
</pre>


=={{header|Racket}}==
=={{header|Racket}}==