Resume processing of a message
int MsgCurrent( int rcvid ); int MsgCurrent_r( int rcvid );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The MsgCurrent() kernel call announces to the kernel that you are resuming the processing of a previously received message. The kernel checks that the thread identified by rcvid is still valid and is reply-blocked on the connection associated with that rcvid.
If the channel doesn't have _NTO_CHF_FIXED_PRIORITY set in its flags, then the appropriate priority adjustment will be made to the calling thread's priority. If you call MsgCurrent() on the rcvid pertaining to a low-priority client, then the priority boost given to your thread by a blocked high-priority thread can be lost.
None. If priority inheritance causes the priority of the calling thread to drop, other threads may run.
The only difference between the MsgCurrent() and MsgCurrent_r() functions is the way they indicate errors:
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
MsgSendnc(), MsgSendPulse(), MsgSendsv(), MsgSendsvnc(), MsgSendv(), MsgSendvnc(), MsgSendvs(), MsgSendvsnc()