PATH:
opt
/
alt
/
ruby34
/
share
/
ri
/
system
/
Kernel
U:RDoc::AnyMethod[iI" fork:ETI"Kernel#fork;TF:publico:RDoc::Markup::Document:@parts[!o:RDoc::Markup::Paragraph; [I"Creates a child process.;To:RDoc::Markup::BlankLine o; ; [I">With a block given, runs the block in the child process; ;TI"?on block exit, the child terminates with a status of zero:;T@o:RDoc::Markup::Verbatim; [ I",puts "Before the fork: #{Process.pid}" ;TI" fork do ;TI"3 puts "In the child process: #{Process.pid}" ;TI"'end # => 382141 ;TI"+puts "After the fork: #{Process.pid}" ;T:@format0o; ; [I"Output:;T@o;; [I"Before the fork: 420496 ;TI"After the fork: 420496 ;TI""In the child process: 420520 ;T; 0o; ; [I"8With no block given, the +fork+ call returns twice:;T@o:RDoc::Markup::List: @type:BULLET:@items[o:RDoc::Markup::ListItem:@label0; [o; ; [I"HOnce in the parent process, returning the pid of the child process.;To;;0; [o; ; [I"0Once in the child process, returning +nil+.;T@o; ; [I" Example:;T@o;; [I"Hputs "This is the first line before the fork (pid #{Process.pid})" ;TI"puts fork ;TI"Hputs "This is the second line after the fork (pid #{Process.pid})" ;T; 0o; ; [I"Output:;T@o;; [ I"9This is the first line before the fork (pid 420199) ;TI"420223 ;TI"9This is the second line after the fork (pid 420199) ;TI" ;TI"9This is the second line after the fork (pid 420223) ;T; 0o; ; [I"6In either case, the child process may exit using ;TI"6Kernel.exit! to avoid the call to Kernel#at_exit.;T@o; ; [I"FTo avoid zombie processes, the parent process should call either:;T@o;;;;[o;;0; [o; ; [I"GProcess.wait, to collect the termination statuses of its children.;To;;0; [o; ; [I"=Process.detach, to register disinterest in their status.;T@o; ; [I"PThe thread calling +fork+ is the only thread in the created child process; ;TI"'+fork+ doesn't copy other threads.;T@o; ; [I"=Note that method +fork+ is available on some platforms, ;TI"but not on others:;T@o;; [I"DProcess.respond_to?(:fork) # => true # Would be false on some. ;T; 0o; ; [I"3If not, you may use ::spawn instead of +fork+.;T: @fileI"process.c;T:0@omit_headings_from_table_of_contents_below0I"KProcess.fork { ... } -> integer or nil Process.fork -> integer or nil ;T0[ I"();T@dFI"Kernel;TcRDoc::NormalModule00
[+]
..
[-] loop-i.ri
[edit]
[-] Complex-i.ri
[edit]
[-] Pathname-i.ri
[edit]
[-] block_given%3f-i.ri
[edit]
[-] format-i.ri
[edit]
[-] readlines-i.ri
[edit]
[-] chop-i.ri
[edit]
[-] tap-i.ri
[edit]
[-] Hash-i.ri
[edit]
[-] catch-i.ri
[edit]
[-] warn-i.ri
[edit]
[-] exec-i.ri
[edit]
[-] iterator%3f-i.ri
[edit]
[-] Float-i.ri
[edit]
[-] spawn-i.ri
[edit]
[-] require_relative-i.ri
[edit]
[-] yield_self-i.ri
[edit]
[-] __method__-i.ri
[edit]
[-] %60-i.ri
[edit]
[-] caller_locations-i.ri
[edit]
[-] syscall-i.ri
[edit]
[-] printf-i.ri
[edit]
[-] then-i.ri
[edit]
[-] clone-i.ri
[edit]
[-] gem-i.ri
[edit]
[-] global_variables-i.ri
[edit]
[-] set_trace_func-i.ri
[edit]
[-] eval-i.ri
[edit]
[-] exit%21-i.ri
[edit]
[-] String-i.ri
[edit]
[-] autoload-i.ri
[edit]
[-] p-i.ri
[edit]
[-] pp-c.ri
[edit]
[-] pretty_inspect-i.ri
[edit]
[-] class-i.ri
[edit]
[-] __callee__-i.ri
[edit]
[-] srand-i.ri
[edit]
[-] putc-i.ri
[edit]
[-] jj-i.ri
[edit]
[-] system-i.ri
[edit]
[-] trap-i.ri
[edit]
[-] lambda-i.ri
[edit]
[-] caller-i.ri
[edit]
[-] abort-i.ri
[edit]
[-] sprintf-i.ri
[edit]
[-] callcc-i.ri
[edit]
[-] readline-i.ri
[edit]
[-] sleep-i.ri
[edit]
[-] Array-i.ri
[edit]
[-] autoload%3f-i.ri
[edit]
[-] gsub-i.ri
[edit]
[-] proc-i.ri
[edit]
[-] puts-i.ri
[edit]
[-] trace_var-i.ri
[edit]
[-] pp-i.ri
[edit]
[-] rand-i.ri
[edit]
[-] JSON-i.ri
[edit]
[-] chomp-i.ri
[edit]
[-] __dir__-i.ri
[edit]
[-] y-i.ri
[edit]
[-] untrace_var-i.ri
[edit]
[-] gets-i.ri
[edit]
[-] Rational-i.ri
[edit]
[-] at_exit-i.ri
[edit]
[-] fork-i.ri
[edit]
[-] local_variables-i.ri
[edit]
[-] select-i.ri
[edit]
[-] fail-i.ri
[edit]
[-] Integer-i.ri
[edit]
[-] raise-i.ri
[edit]
[-] test-i.ri
[edit]
[-] URI-c.ri
[edit]
[-] exit-i.ri
[edit]
[-] throw-i.ri
[edit]
[-] cdesc-Kernel.ri
[edit]
[-] binding-i.ri
[edit]
[-] j-i.ri
[edit]
[-] frozen%3f-i.ri
[edit]
[-] URI-i.ri
[edit]
[-] load-i.ri
[edit]
[-] open-i.ri
[edit]
[-] sub-i.ri
[edit]
[-] require-i.ri
[edit]
[-] print-i.ri
[edit]