Lock the attribute structure
#include <sys/iofunc.h> int iofunc_attr_lock( iofunc_attr_t *attr );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
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.
Safety: | |
---|---|
Cancellation point | Yes |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |