mq_notify(3)						     Library Functions Manual						      mq_notify(3)

NAME
mq_notify - Attaches a request for asynchronous signal notification to a message queue (P1003.1b) LIBRARY
Realtime Library (librt.so, librt.a) SYNOPSIS
#include <mqueue.h> int mq_notify ( mqd_t mqdes, const struct sigevent *notification); PARAMETERS
mqdes Specifies a message queue descriptor. *notification Specifies a signal to be sent when the specified queue accepts a message. If the notification argument is NULL, and the process has previously attached a notification request to the message queue with this mqdes argument, the notification request is detached and the queue is available for another process to attach a notification request. DESCRIPTION
The mq_notify function attaches a request for asynchronous signal notification to a message queue for the calling process. Following a call to this function, the specified signal is sent to the calling process when the queue transitions from empty to non-empty. Two or more processes cannot attach notification requests to the same queue at the same time. If a process has attached a notification request and any process is blocked in the execution of the mq_receive function waiting to receive a message when a message arrives at the queue, then the appropriate mq_receive function is completed and the notification remains pending. When the notification has been sent, the registration is canceled. In effect, it is a one-shot notification and must be re-registered if required. Note that the POSIX IPC functions are not reentrant with respect to signals. For example, if your application were to use a signal to notify it that a queue has become non-empty and then attempt to call mq_receive from the signal handler, the signal handler must reside in a thread other than the tread that called mq_send. Otherwise, a deadlock on internal locks would occur. RETURN VALUES
On successful completion, the function returns the value 0 (zero); otherwise, the function returns the value -1 and sets errno to indicate the error. ERRORS
The mq_notify function fails under the following conditions: [EBADF] The mqdes argument is not a valid message queue descriptor. [EBUSY] A process has already attached to this message queue for asynchronous notification, or the calling process attempted to can- cel a request that was attached by another process. [EINVAL] The requested signo is invalid, or the sigev_notify field of the notification structure does not equal SIGEV_SIGNAL. RELATED INFORMATION
Functions: mq_open(3), mq_send(3) Guide to Realtime Programming delim off mq_notify(3)