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
This commit is contained in:
nobu 2017-06-18 04:29:04 +00:00
parent bc08e66607
commit b89367d6d5

View File

@ -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