A suggestion for the message_queue class is to overload timed_send and timed_receive so that they can accept a duration (say in milliseconds).  I believe currently they work on an absolute time being reached.
 
Thanks,
- Achal.