change throwTo to use tryWakeupThread rather than unblockOne