Man Linux: Main Page and Category List

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 .