diff -r c0224ff67cdd Lib/concurrent/futures/_base.py --- a/Lib/concurrent/futures/_base.py Mon Oct 13 10:39:41 2014 +0100 +++ b/Lib/concurrent/futures/_base.py Mon Oct 13 19:13:58 2014 +0100 @@ -18,7 +18,7 @@ RUNNING = 'RUNNING' # The future was cancelled by the user... CANCELLED = 'CANCELLED' -# ...and _Waiter.add_cancelled() was called by a worker. +# ...and `set_running_or_notify_cancel` was called by a worker. CANCELLED_AND_NOTIFIED = 'CANCELLED_AND_NOTIFIED' FINISHED = 'FINISHED' @@ -446,8 +446,7 @@ Should only be used by Executor implementations and unit tests. If the future has been cancelled (cancel() was called and returned - True) then any threads waiting on the future completing (though calls - to as_completed() or wait()) are notified and False is returned. + True) False is returned. If the future was not cancelled then it is put in the running state (future calls to running() will return True) and True is returned. @@ -468,8 +467,6 @@ self._state = CANCELLED_AND_NOTIFIED for waiter in self._waiters: waiter.add_cancelled(self) - # self._condition.notify_all() is not necessary because - # self.cancel() triggers a notification. return False elif self._state == PENDING: self._state = RUNNING