killThread package:time-manager

Registering a timeout action of killing this thread. TimeoutThread is thrown to the thread which called this function on timeout. Catch TimeoutThread if you don't want to leak the asynchronous exception to GHC RTS.
Registering a timeout action of killing this thread and unregister its handle when the body action is killed or finished.