ÿØÿà JFIF ÿÛ „ ( %!1!%)+//.383,7(-.+
-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ ¥2" ÿÄ ÿÄ J ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ ÿÄ * !1AQa‘"2q3±ð#b¡ÿÚ ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁTÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßwpŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
?>
.........................................
.............................................................................
ÿØÿà JFIF ÿÛ „
(
%!1!%)+//.383,7(-.+
-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ ¥2" ÿÄ
ÿÄ J ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ
ÿÄ * !1AQa‘"2q3±ð#b¡ÿÚ
? ¼QxJQaÍuò¸Zö
Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁTÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßwpŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
?>
.........................................
.............................................................................
????????????????????????????????????
????????????????????????????????????
ÿØÿà JFIF ÿÛ „ ( %!1!%)+//.383,7(-.+
-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ ¥2" ÿÄ ÿÄ J ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ ÿÄ * !1AQa‘"2q3±ð#b¡ÿÚ ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁTÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßwpŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
?>
.........................................
.............................................................................
ÿØÿà JFIF ÿÛ „
(
%!1!%)+//.383,7(-.+
-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ ¥2" ÿÄ
ÿÄ J ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ
ÿÄ * !1AQa‘"2q3±ð#b¡ÿÚ
? ¼QxJQaÍuò¸Zö
Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁTÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßwpŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
?>
.........................................
.............................................................................
????????????????????????????????????
????????????????????????????????????
U:RDoc::AnyMethod[iI"waitpid:ETI"Process::waitpid;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph; [ I"IWaits for a suitable child process to exit, returns its process ID, ;TI"6and sets $? to a Process::Status object ;TI"-containing information on that process. ;TI"FWhich child it waits for depends on the value of the given +pid+:;To:RDoc::Markup::BlankLine o:RDoc::Markup::List:
@type:BULLET:@items[ o:RDoc::Markup::ListItem:@label0; [o;
; [I"MPositive integer: Waits for the child process whose process ID is +pid+:;T@o:RDoc::Markup::Verbatim; [I"?pid0 = Process.spawn('ruby', '-e', 'exit 13') # => 230866
;TI"?pid1 = Process.spawn('ruby', '-e', 'exit 14') # => 230891
;TI"?Process.wait(pid0) # => 230866
;TI"_$? # => #
;TI"?Process.wait(pid1) # => 230891
;TI"_$? # => #
;TI"JProcess.wait(pid0) # Raises Errno::ECHILD
;T:@format0o;;0; [o;
; [I"<0: Waits for any child process whose group ID ;TI"0is the same as that of the current process:;T@o;; [I"1parent_pgpid = Process.getpgid(Process.pid)
;TI"8puts "Parent process group ID is #{parent_pgpid}."
;TI"child0_pid = fork do
;TI", puts "Child 0 pid is #{Process.pid}"
;TI"2 child0_pgid = Process.getpgid(Process.pid)
;TI"M puts "Child 0 process group ID is #{child0_pgid} (same as parent's)."
;TI" end
;TI"child1_pid = fork do
;TI", puts "Child 1 pid is #{Process.pid}"
;TI"' Process.setpgid(0, Process.pid)
;TI"2 child1_pgid = Process.getpgid(Process.pid)
;TI"T puts "Child 1 process group ID is #{child1_pgid} (different from parent's)."
;TI" end
;TI"%retrieved_pid = Process.wait(0)
;TI"Qputs "Process.wait(0) returned pid #{retrieved_pid}, which is child 0 pid."
;TI"begin
;TI" Process.wait(0)
;TI"rescue Errno::ECHILD => x
;TI"h puts "Raised #{x.class}, because child 1 process group ID differs from parent process group ID."
;TI" end
;T;0o;
; [I"Output:;T@o;; [I"(Parent process group ID is 225764.
;TI"Child 0 pid is 225788
;TI"-1 (default): Waits for any child process:;T@o;; [I"1parent_pgpid = Process.getpgid(Process.pid)
;TI"8puts "Parent process group ID is #{parent_pgpid}."
;TI"child0_pid = fork do
;TI", puts "Child 0 pid is #{Process.pid}"
;TI"2 child0_pgid = Process.getpgid(Process.pid)
;TI"M puts "Child 0 process group ID is #{child0_pgid} (same as parent's)."
;TI" end
;TI"child1_pid = fork do
;TI", puts "Child 1 pid is #{Process.pid}"
;TI"' Process.setpgid(0, Process.pid)
;TI"2 child1_pgid = Process.getpgid(Process.pid)
;TI"T puts "Child 1 process group ID is #{child1_pgid} (different from parent's)."
;TI"C sleep 3 # To force child 1 to exit later than child 0 exit.
;TI" end
;TI"+child_pids = [child0_pid, child1_pid]
;TI"&retrieved_pid = Process.wait(-1)
;TI"-puts child_pids.include?(retrieved_pid)
;TI"&retrieved_pid = Process.wait(-1)
;TI"-puts child_pids.include?(retrieved_pid)
;T;0o;
; [I"Output:;T@o;; [I"(Parent process group ID is 228736.
;TI"Child 0 pid is 228758
;TI"-1: Waits for any child whose process group ID is -pid:;T@o;; [I"1parent_pgpid = Process.getpgid(Process.pid)
;TI"8puts "Parent process group ID is #{parent_pgpid}."
;TI"child0_pid = fork do
;TI", puts "Child 0 pid is #{Process.pid}"
;TI"2 child0_pgid = Process.getpgid(Process.pid)
;TI"M puts "Child 0 process group ID is #{child0_pgid} (same as parent's)."
;TI" end
;TI"child1_pid = fork do
;TI", puts "Child 1 pid is #{Process.pid}"
;TI"' Process.setpgid(0, Process.pid)
;TI"2 child1_pgid = Process.getpgid(Process.pid)
;TI"T puts "Child 1 process group ID is #{child1_pgid} (different from parent's)."
;TI" end
;TI"
sleep 1
;TI"/retrieved_pid = Process.wait(-child1_pid)
;TI"[puts "Process.wait(-child1_pid) returned pid #{retrieved_pid}, which is child 1 pid."
;TI"begin
;TI"! Process.wait(-child1_pid)
;TI"rescue Errno::ECHILD => x
;TI"h puts "Raised #{x.class}, because there's no longer a child with process group id #{child1_pid}."
;TI" end
;T;0o;
; [I"Output:;T@o;; [I"(Parent process group ID is 230083.
;TI"Child 0 pid is 230108
;TI" integer
;T0[ I"(*args);T@FI"Process;TcRDoc::NormalModule00