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.