Yields the current thread, and optionally suspends the current thread
for a given number of microseconds.
If suspended, there is no guarantee that the thread will be
rescheduled promptly when the delay has expired, but the thread will
never continue to run earlier than specified.
threadDelay _ = yield