Manual Page Result
0
Command: mq_notify | Section: 3 | Source: Digital UNIX | File: mq_notify.3.gz
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)
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 ac-
cepts 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, notification
request is detached and the queue is available for another
process to attach a notification request.
DESCRIPTION
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 transi-
tions from empty to non-empty. Two or more processes cannot attach no-
tification 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 re-
quired.
Note that the POSIX IPC functions are not reentrant with respect to
signals. For example, if your application were to use a signal to no-
tify 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; 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 descrip-
tor.
[EBUSY] A process has already attached to this message queue for
asynchronous notification, or the calling process at-
tempted to cancel 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) delim off
mq_notify(3)