U:RDoc::AnyMethod[iI" fork:ETI"Kernel#fork;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"FCreates a subprocess. If a block is specified, that block is run ;TI"Gin the subprocess, and the subprocess terminates with a status of ;TI"=zero. Otherwise, the +fork+ call returns twice, once in ;TI"Dthe parent, returning the process ID of the child, and once in ;TI"Bthe child, returning _nil_. The child process can exit using ;TI"4Kernel.exit! to avoid running any ;TI"?at_exit functions. The parent process should ;TI"Guse Process.wait to collect the termination statuses ;TI"Dof its children or use Process.detach to register ;TI"Bdisinterest in their status; otherwise, the operating system ;TI"%may accumulate zombie processes.;To:RDoc::Markup::BlankLineo; ; [I"NThe thread calling fork is the only thread in the created child process. ;TI"%fork doesn't copy other threads.;T@o; ; [I"EIf fork is not usable, Process.respond_to?(:fork) returns false.;T@o; ; [I"UNote that fork(2) is not available on some platforms like Windows and NetBSD 4. ;TI"8Therefore you should use spawn() instead of fork().;T: @fileI"process.c;T:0@omit_headings_from_table_of_contents_below0I"_Kernel.fork [{ block }] -> integer or nil Process.fork [{ block }] -> integer or nil ;T0[I"();T@$FI" Kernel;TcRDoc::NormalModule00