diff --git a/spec/std/process_spec.cr b/spec/std/process_spec.cr index 0e8363856e24..d5feae488d69 100644 --- a/spec/std/process_spec.cr +++ b/spec/std/process_spec.cr @@ -154,8 +154,9 @@ describe Process do it "gets the pgid of a process id" do process = fork { loop { } } - Process.getpgid(process.pid).should be_a(Int32) + Process.pgid(process.pid).should be_a(Int32) process.kill(Signal::KILL) + Process.pgid.should eq(Process.pgid(Process.pid)) end it "can link processes together" do diff --git a/src/process/process.cr b/src/process/process.cr index 2ec12cdf8c29..547a88532889 100644 --- a/src/process/process.cr +++ b/src/process/process.cr @@ -13,7 +13,11 @@ class Process LibC.getpid end - def self.getpgid(pid : Int32) : LibC::PidT + def self.pgid : LibC::PidT + pgid(0) + end + + def self.pgid(pid : Int32) : LibC::PidT ret = LibC.getpgid(pid) raise Errno.new(ret) if ret < 0 ret