receive(timeout) is a synchronous interface. The C API does not offer a synchronous interface. It would be highly unusual to configure a timeout on an asynchronous callback interface. It would be common for in a send-for-reply paradigm, such as subscription/subscription confirm, or connect/connect-confirm. or request-reply, and asynchronous timeout events are available in the C API for the first two. However there is no concept of an asynchronous timeout for simply receiving messages.
Ragnar