Provided by: manpages-posix-dev_2.16-1_all bug

NAME

       mq_notify - notify process that a message is available (REALTIME)

SYNOPSIS

       #include <mqueue.h>

       int mq_notify(mqd_t mqdes, const struct sigevent *notification);

DESCRIPTION

       If the argument notification is not NULL, this function shall register the calling process to be notified
       of  message  arrival  at  an  empty message queue associated with the specified message queue descriptor,
       mqdes. The notification specified by the notification argument shall be sent  to  the  process  when  the
       message  queue  transitions  from empty to non-empty. At any time, only one process may be registered for
       notification by a message queue. If the calling process or any other process has already  registered  for
       notification  of message arrival at the specified message queue, subsequent attempts to register for that
       message queue shall fail.

       If notification is NULL and the process is currently registered for notification by the specified message
       queue, the existing registration shall be removed.

       When the notification is sent to the registered process, its registration shall be removed.  The  message
       queue shall then be available for registration.

       If  a  process  has  registered for notification of message arrival at a message queue and some thread is
       blocked in mq_receive() waiting to receive a message when a message arrives at the  queue,  the  arriving
       message  shall  satisfy  the appropriate mq_receive().  The resulting behavior is as if the message queue
       remains empty, and no notification shall be sent.

RETURN VALUE

       Upon successful completion, the mq_notify() function  shall  return  a  value  of  zero;  otherwise,  the
       function shall return a value of -1 and set errno to indicate the error.

ERRORS

       The mq_notify() function shall fail if:

       EBADF  The mqdes argument is not a valid message queue descriptor.

       EBUSY  A process is already registered for notification by the message queue.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       mq_open() , mq_send() , mq_timedsend() , msgctl() , msgget() , msgrcv() , msgsnd() , the Base Definitions
       volume of IEEE Std 1003.1-2001, <mqueue.h>

COPYRIGHT

       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition,
       Standard  for  Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics Engineers,
       Inc and The Open Group. In the event of any discrepancy between this version and the  original  IEEE  and
       The  Open  Group  Standard,  the  original  IEEE and The Open Group Standard is the referee document. The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group                                   2003                                          MQ_NOTIFY(P)