 	}
 	
 	public func cancelWork(withError error: NSError?) {
-		guard canStartFinishOrCancel else { return }
+		guard notFinishedOrCancelled else { return }
 		self.error = error
 		cancel()
 	}

			return
		}
	
		guard canStartFinishOrCancel else { return } // Shouldn't come up.
		
		willChangeValue(forKey: #keyPath(AsyncOperation.isExecuting))
		

	private var _startTime: Date?
	private var _finishTime: Date?

	public var notFinishedOrCancelled: Bool {
		return !isFinished && !isCancelled
	}
	
	public let timeout: TimeInterval
