iofunc_notify_remove(), iofunc_notify_remove_strict()

Updated: April 19, 2023

Remove notification entries from a list

Synopsis:

#include <sys/iofunc.h>

void iofunc_notify_remove( resmgr_context_t * ctp,
                           iofunc_notify_t * nop );

void iofunc_notify_remove_strict( resmgr_context_t *ctp,
                                  iofunc_notify_t *nop,
                                  int lim );

Arguments:

ctp
NULL, or a pointer to a resmgr_context_t structure for the client whose entries you want to remove.
nop
An array of iofunc_notify_t structures that represent the notification lists whose entries you want to remove. The traditional lists are (in order) input, output, and out-of-band. For information about this structure, see the documentation for iofunc_notify().
lim
(iofunc_notify_remove_strict() only) The number of entries in the nop array. The iofunc_notify_remove() function assumes there are three entries.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The iofunc_notify_remove() function removes all of the entries associated with the current client from the notification list passed in nop. The client information is obtained from the ctp.

The iofunc_notify_remove_strict() function is similar but lets you specify the number of entries in nop. This variant is useful for managers that support the extended conditions of poll().

If the ctp pointer is NULL, then all of the notify entries will be removed. A resource manager generally calls this function, with NULL as the ctp in the close_dup callout, to clean up all handles associated with this connection. If the handles are shared between several connections, then the ctp should be provided to clean up after each client.

Examples:

See Sample code for handling _IO_NOTIFY messages in Writing a Resource Manager.

Classification:

QNX Neutrino

Safety:  
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes