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::BlankLine o;
; [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