Это продолжение моего предыдущего вопроса.
Предположим, что у меня есть задача, которая выполняет прерывистый блокирующий вызов. Я хотел бы запустить его как Future
и отменить его с помощью метода failure
Promise
.
Я хотел бы, чтобы отмена работала следующим образом:
-
Если кто-то отменил задачу до ее завершения, мне бы хотелось, чтобы задача завершилась "немедленно", прерывая блокирующий вызов, если он уже запущен, и я хотел бы, чтобы
Future
вызывалonFailure
. -
Если отменить задачу после завершения задачи, я хотел бы получить статус, заявляющий, что отмена завершилась с момента завершения задачи.
Имеет ли смысл? Можно ли реализовать в Scala? Есть ли примеры таких реализаций?