Ignore FDs kept by system library

`getaddrinfo` on macOS seems keeping FDs to query host names
internally.
This commit is contained in:
Nobuyoshi Nakada 2020-05-06 13:13:10 +09:00
Родитель 7397b9f786
Коммит b247ac086e
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 7CD2805BFA3770C6
1 изменённых файлов: 13 добавлений и 0 удалений

Просмотреть файл

@ -89,6 +89,19 @@ class LeakChecker
}.sort.each {|s|
str << s
}
else
begin
io = IO.for_fd(fd, autoclose: false)
s = io.stat
rescue Errno::EBADF
# something un-stat-able
next
else
next if /darwin/ =~ RUBY_PLATFORM and [0, -1].include?(s.dev)
str << ' ' << s.inspect
ensure
io.close
end
end
puts "Leaked file descriptor: #{test_name}: #{fd}#{str}"
puts " The IO was created at #{pos}" if pos