[ruby/win32ole] Scale timeout in win32ole

https://github.com/ruby/win32ole/commit/7e04d0eb3e
This commit is contained in:
Nobuyoshi Nakada 2021-11-21 18:11:33 +09:00
Родитель ae95939784
Коммит 270c48507d
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 7CD2805BFA3770C6
1 изменённых файлов: 2 добавлений и 1 удалений

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

@ -65,12 +65,13 @@ if defined?(WIN32OLE_EVENT)
if watch_ivar
# wait until event is proceeded
tries = 0
seconds = EnvUtil.apply_timeout_scale(1)
while tries < 5 && instance_variable_get(watch_ivar) == orig_ivar
seconds = 2 ** tries # sleep at most 31s in total
$stderr.puts "test_win32ole_event.rb: retrying and sleeping #{seconds}s until #{watch_ivar} is changed from #{orig_ivar.inspect}..."
WIN32OLE_EVENT.message_loop
sleep(seconds)
tries += 1
seconds *= 2 # sleep at most 31s in total
end
end
end