diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-06-18 04:29:04 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-06-18 04:29:04 +0000 |
commit | c663d9fb61a7831c4c76be07931fa35272c82f82 (patch) | |
tree | 6a0525a88c65daa961899f3a497db4b0ba1691c3 | |
parent | 7a5ab6649d5bf5984ab50f8841e55154b374be67 (diff) | |
download | ruby-c663d9fb61a7831c4c76be07931fa35272c82f82.tar.gz |
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
-rw-r--r-- | test/lib/test/unit.rb | 11 |
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 |