Добрый день. Столкнулся с ошибкой, что при блокирующем ожидании завершения работы Completable, созданного при помощи .fromAction(), не срабатывает .timeout():
Completable.fromAction(() -> {
System.out.println("start time: " + timeString());
Thread.sleep(10_000);
})
.timeout(3, TimeUnit.SECONDS)
.onErrorComplete()
.blockingAwait();
System.out.println("after time: " + timeString());
Код внутри скобок выполняется 10 секунд, таймаут установлен на 3 секунды. Однако, оператор завершает выполнение только спустя 10 секунд. Вот вывод программы:
start time: 14:55
after time: 15:05
Process finished with exit code 0
Вопрос: почему так происходит?
Сборка персонального компьютера от Artline: умный выбор для современных пользователей