This is a followup to my previous question.
Suppose I have a task, which executes an interruptible blocking call. I would like to run it as a Future
and cancel it with failure
method of Promise
.
I would like the cancel to work as follows:
If one cancels the task before it finished I would like the task to finish "immediately", interrupting the blocking call if it has already started and I would like the
Future
to invokeonFailure
.If one cancels the task after the task finished I would like to get a status saying that the cancel failed since the task already finished.
Does it make sense? Is it possible to implement in Scala? Are there any examples of such implementations?