Gets the owner, the pshared value, or the state of the read/write lock.
pthread debug library (libpthdebug.a)
#include <sys/pthdebug.h>
int pthdb_rwlock_addr (pthdb_session_t session,
pthdb_rwlock_t rwlock,
pthdb_addr_t * addrp)
int pthdb_rwlock_lock_count (pthdb_session_t session,
pthdb_rwlock_t rwlock,
int * countp);
int pthdb_rwlock_owner (pthdb_session_t session,
pthdb_rwlock_t rwlock,
pthdb_pthread_t * ownerp
int cmd)
int pthdb_rwlock_pshared (pthdb_session_t session,
pthdb_rwlock_t rwlock,
pthdb_pshared_t * psharedp)
int pthdb_rwlock_state (pthdb_session_t session,
pthdb_rwlock_t rwlock,
pthdb_rwlock_state_t * statep)
The pthdb_rwlock_addr function reports the address of the pthdb_rwlock_t.
The pthdb_rwlock_lock_count function reports the lock count for the rwlock.
The pthdb_rwlock_owner function is used to get the read/write lock owner's pthread handle.
The pthdb_rwlock_pshared function is used to get the rwlock attribute process shared value. The pshared value can be PSH_SHARED, PSH_PRIVATE, or PSH_NOTSUP.
The pthdb_rwlock_state is used to get the read/write locks state. The state can be RWLS_NOTSUP, RWLS_WRITE, RWLS_FREE, and RWLS_READ.
Item | Description |
---|---|
addrp | Read write lock address. |
countp | Read write lock lock count. |
cmd | cmd can be PTHDB_LIST_FIRST to get the first owner in the list of owners or PTHDB_LIST_NEXT to get the next owner in the list of owners. The list is empty or ended by *owner == PTHDB_INVALID_PTHREAD. |
ownerp | Pointer to pthread which owns the rwlock |
psharedp | Pointer to pshared value |
rwlock | Read write lock handle |
session | Session handle. |
statep | Pointer to state value |
If successful, these functions return PTHDB_SUCCESS. Otherwise, an error code is returned.
Item | Description |
---|---|
PTHDB_BAD_SESSION | Invalid session handle. |
PTHDB_BAD_CMD | Invalid command passed. |
PTHDB_CALLBACK | Debugger call back error. |
PTHDB_INTERNAL | Error in library. |
PTHDB_POINTER | Invalid pointer |