iofunc_attr_trylock()

Try to lock the attribute structure

Synopsis:

#include <sys/iofunc.h>

int iofunc_attr_trylock( 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_trylock() function attempts to lock the attribute structure attr, preventing other threads in the resource manager from changing information. If it can't lock attr immediately, it returns EBUSY.

Call this function (or iofunc_attr_lock()) 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 will block.

Returns:

EOK
Success.
EBUSY
The calling thread couldn't lock the attributes immediately.
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

See also:

iofunc_attr_init(), iofunc_attr_lock(), iofunc_attr_t, iofunc_attr_unlock()

Writing a Resource Manager