summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-06-18 04:29:04 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-06-18 04:29:04 +0000
commitb89367d6d5e6537414ab01f075427f9f13bc50c8 (patch)
tree6a0525a88c65daa961899f3a497db4b0ba1691c3 /test
parentbc08e66607f883acd2b4da3eba32b54ab43426aa (diff)
test/unit.rb: close jobserver
* test/lib/test/unit.rb (Test::Unit::Parallel#flush_job_tokens): close jobserver auth fds aflter flush, not to release tokens more than acquired. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/lib/test/unit.rb11
1 files changed, 7 insertions, 4 deletions
diff --git a/test/lib/test/unit.rb b/test/lib/test/unit.rb
index ed32e48f86..c6983d0a6a 100644
--- a/test/lib/test/unit.rb
+++ b/test/lib/test/unit.rb
@@ -292,8 +292,11 @@ module Test
def flush_job_tokens
if @jobserver
- @jobserver[1] << @job_tokens
- @job_tokens.clear
+ r, w = @jobserver.shift(2)
+ @jobserver = nil
+ w << @job_tokens.slice!(0..-1)
+ r.close
+ w.close
end
end
@@ -317,8 +320,8 @@ module Test
return unless @options[:parallel]
return if @interrupt
worker.close
- if @jobserver and !@job_tokens.empty?
- @jobserver[1] << @job_tokens.slice!(0)
+ if @jobserver and (token = @job_tokens.slice!(0))
+ @jobserver[1] << token
end
@workers.delete(worker)
@dead_workers << worker