#include <pthread.h> int pthread_rwlockattr_destroy(pthread_rwlockattr_t *attr);Service Program Name: QP0WPTHR
The pthread_rwlockattr_destroy() function destroys a read/write lock attributes object and allows the systems to reclaim any resources associated with that read/write lock attributes object. This does not have an effect on any read/write lock already created using this read/write lock attributes object.
None.
If pthread_rwlockattr_destroy() was not successful, the error condition returned usually indicates one of the following errors. Under some conditions, the value returned could indicate an error other than those listed here.
The value specified for the argument is not correct.
See Code disclaimer information for information pertaining to code examples.
#define _MULTI_THREADED #include <pthread.h> #include <stdio.h> #include "check.h" pthread_rwlock_t rwlock1; pthread_rwlock_t rwlock2 = PTHREAD_RWLOCK_INITIALIZER; int main(int argc, char **argv) { int rc=0; pthread_rwlockattr_t attr; printf("Enter Testcase - %s\n", argv[0]); printf("Create a default rwlock attribute\n"); rc = pthread_rwlockattr_init(&attr); checkResults("pthread_rwlockattr_init()\n", rc); printf("Use the rwlock attributes to created rwlocks here\n"); rc = pthread_rwlock_init(&rwlock1, &attr); checkResults("pthread_rwlock_init()\n", rc); printf("The rwlock1 is now ready for use.\n"); printf("The rwlock2 that was statically initialized was ready when\n" "the main routine was entered\n"); printf("Destroy rwlock attribute\n"); rc = pthread_rwlockattr_destroy(&attr); checkResults("pthread_rwlockattr_destroy()\n", rc); printf("Use the rwlocks\n"); rc = pthread_rwlock_rdlock(&rwlock1); checkResults("pthread_rwlock_rdlock()\n", rc); rc = pthread_rwlock_wrlock(&rwlock2); checkResults("pthread_rwlock_wrlock()\n", rc); rc = pthread_rwlock_unlock(&rwlock1); checkResults("pthread_rwlock_unlock(1)\n", rc); rc = pthread_rwlock_unlock(&rwlock2); checkResults("pthread_rwlock_unlock(2)\n", rc); printf("Destroy the rwlocks\n"); rc = pthread_rwlock_destroy(&rwlock1); checkResults("pthread_rwlock_destroy(1)\n", rc); rc = pthread_rwlock_destroy(&rwlock2); esults("pthread_rwlock_destroy(2)\n", rc); printf("Main completed\n"); return 0; }
Output:
Enter Testcase - QP0WTEST/TPRWLAI0 Create a default rwlock attribute Use the rwlock attributes to created rwlocks here The rwlock is now ready for use. The rwlock that was statically initialized was ready when the main routine was entered Destroy rwlock attribute Use the rwlocks Destroy the rwlocks Main completed
Top | Pthread APIs | APIs by category |