It doesn't abort the operation, though. Just leaves it running in the background.
Canceling arbitrary operations is a bit of a hard problem. Automatic garbage collection helps a little, but even so, handles and locks would be left open for an indeterminate length of time.
Sorry I am still not understanding the functionality you are expecting. If it has to be synchronous, it means that the caller is interested in the result. However, the caller can stop after a specified timeout and continue, which means that getting the result is not absolutely critical to the caller's functionality.
So then why is callback not an option? After all, it is the same as setting the timeout to zero and getting interrupted (or polling) at some point in the future.
5 comments
[ 16.1 ms ] story [ 1224 ms ] threadCanceling arbitrary operations is a bit of a hard problem. Automatic garbage collection helps a little, but even so, handles and locks would be left open for an indeterminate length of time.
So then why is callback not an option? After all, it is the same as setting the timeout to zero and getting interrupted (or polling) at some point in the future.