Chapter 4 - Recipe #8: Canceling a task in an executor