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}}== |