"I was just waiting for you. There's so much interesting work for you here:"
Work up a sweat!
Implement the logic of the interrupt() method, which should interrupt the thread after first closing used resources. Use the superclass's method in a finally block.
No goofing off
Restore the logic of the TaskManipulator class.
It's not as easy as it seems
1. Read online about Socket, ThreadPoolExecutor, RunnableFuture, and Callable. 2. Implement the logic of the SocketTask class's cancel() method. 3. Implement the cancel() method's logic for a local class inside the SocketTask class's newTask method.