Skip to content

Commit acfc717

Browse files
committed
[Truffle] Add Process.setsid
1 parent 5d9716c commit acfc717

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

truffle/src/main/java/org/jruby/truffle/nodes/rubinius/PosixNodes.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,20 @@ public int setuid(int uid) {
435435

436436
}
437437

438+
@CoreMethod(names = "setsid", isModuleFunction = true)
439+
public abstract static class SetSidNode extends CoreMethodArrayArgumentsNode {
440+
441+
public SetSidNode(RubyContext context, SourceSection sourceSection) {
442+
super(context, sourceSection);
443+
}
444+
445+
@Specialization
446+
public int setsid() {
447+
return posix().setsid();
448+
}
449+
450+
}
451+
438452
@CoreMethod(names = "flock", isModuleFunction = true, required = 2, lowerFixnumParameters = {0, 1})
439453
public abstract static class FlockNode extends CoreMethodArrayArgumentsNode {
440454

truffle/src/main/ruby/core/rubinius/common/process.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@ module Constants
6464

6565
FFI = Rubinius::FFI
6666

67+
def self.setsid
68+
pgid = FFI::Platform::POSIX.setsid
69+
Errno.handle if pgid == -1
70+
pgid
71+
end
72+
6773
def self.times
6874
Struct::Tms.new(*cpu_times)
6975
end

0 commit comments

Comments
 (0)