worker - watcher model normal case how watcher detects worker finishes late case how to kill the thread from watcher to worker