implement MessageQueue::send_wait() with timeout