iofunc_attr_lock()

Lock the attribute structure

Synopsis:

#include <sys/iofunc.h>

int iofunc_attr_lock( iofunc_attr_t *attr );

Arguments:

attr
A pointer to the iofunc_attr_t structure that you want to lock.

Library:

libc

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

Description:

The iofunc_attr_lock() function locks the attribute structure that attr points to, preventing other threads in the resource manager from changing information.

Call this function (or iofunc_attr_trylock()) before you make any modifications to the attribute structure. After you're finished making modifications, call iofunc_attr_unlock() to release the lock.

Note that this is a counting locking mechanism. This means that a given thread can lock the attributes structure multiple times; it must then unlock the attributes structure a corresponding number of times in order to have the attributes structure considered unlocked. If another thread attempts to lock the structure while a thread has the structure locked, the other thread blocks.

Returns:

EOK
Success.
EAGAIN
On the first use, all kernel mutex objects were in use.

Classification:

QNX Neutrino

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