summaryrefslogtreecommitdiff
path: root/tool/lib
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-11-06 23:39:55 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-11-06 23:39:55 +0900
commit12883f8fa6222324880e2b0f161f8c6d6cf365c7 (patch)
tree81f9e76688221aa2c4aba737ca87c4135d2c35ba /tool/lib
parentfc842c9ccc2059e20ec6487b6678e6b71cbd77e1 (diff)
downloadruby-12883f8fa6222324880e2b0f161f8c6d6cf365c7.tar.gz
GNU make 4.4 now uses a fifo for the jobserver
Diffstat (limited to 'tool/lib')
-rw-r--r--tool/lib/test/unit.rb11
1 files changed, 8 insertions, 3 deletions
diff --git a/tool/lib/test/unit.rb b/tool/lib/test/unit.rb
index 59409f016c..fb1a53ce05 100644
--- a/tool/lib/test/unit.rb
+++ b/tool/lib/test/unit.rb
@@ -286,10 +286,15 @@ module Test
@jobserver = nil
makeflags = ENV.delete("MAKEFLAGS")
if !options[:parallel] and
- /(?:\A|\s)--jobserver-(?:auth|fds)=(\d+),(\d+)/ =~ makeflags
+ /(?:\A|\s)--jobserver-(?:auth|fds)=(?:(\d+),(\d+)|fifo:(.*))/ =~ makeflags
begin
- r = IO.for_fd($1.to_i(10), "rb", autoclose: false)
- w = IO.for_fd($2.to_i(10), "wb", autoclose: false)
+ if fifo = $3
+ r = File.open(fifo, IO::RDONLY|IO::NONBLOCK|IO::BINARY, autoclose: false)
+ w = File.open(fifo, IO::WRONLY|IO::NONBLOCK|IO::BINARY, autoclose: false)
+ else
+ r = IO.for_fd($1.to_i(10), "rb", autoclose: false)
+ w = IO.for_fd($2.to_i(10), "wb", autoclose: false)
+ end
rescue
r.close if r
nil