The POSIX message queue functions:
mq_timedreceive
mq_timedsend
are limitied to using CLOCK_REALTIME as timeout parameter.
Here is an implementation of two wrapper functions for them, named:
mq_timedreceive_monotonic
mq_timedsend_monotonic
that accept as timeout parameter CLOCK_MONOTONIC.
Implementation was done using linux API poll()