Newbie: QNX messaging

I am new to QNX. When using QNX native synchronous messaging (MsgSend,MsgReceive,MsgReply), if the client does a MessageSend with
timeout and it times out before the server does a MsgReceive and reply.
What will happen to the server’s reply.
Can the client do a Message receive later and get it ? My intention is to do polling without getting stuck in MessageSend().
Also how can I set the depth of the message receive queue for a channel.

Appriciate your help.

If MessageSend is cancel because of timeout the message is lost.

Setting up a timeout on MessageSend to do polling is not a good idea in general. One solution is to use multiple threads (either in the server or the client). Or instead of doing a MessageSend you can deliver an event and let the server indicate when data is available.

Thanks Mario for the quick response.
But even if implement the client side to act on an event (I guess
you meant pulses), it has to do a pulsereceive which is blocking.
(but we can do it with timeout as there is no risk of losing the pulse
client will get it on the next poll).
Can the client implement poll/select on the connection?
I am implementing a properitery IPC mechanism across processors, where one of them running QNX. Need a quick and reliable way to send and receive messages to qnx clients.

It is unclear to me what exactly you want to accomplish. People new to QNX usually thing as “blocking” as a bad thing which in most cases is not an issue. Why do you think blocking is a problem.

If your server is a resource manage you can easely implement selection/notification. The client can then use select() or io_notify.

Yes the client can poll the server without loosing the pulse if it times out.

When I said event I didn’t meant pulse specificaly, event can be a signal for example.

If you really need asynchromous messaging look at QNX6.3 new async API.