pthread_attr_destroy()--Destroy Thread Attributes Object


  Syntax:
 #include <pthread.h>
 int pthread_attr_destroy(pthread_attr_t *attr); 
  Service Program Name: QP0WPTHR

  Default Public Authority: *USE

  Threadsafe: Yes

  Signal Safe: Yes

The pthread_attr_destroy() function destroys a thread attributes object and allows the system to reclaim any resources associated with that thread attributes object. This does not have an effect on any threads created using this thread attributes object.


Authorities and Locks

None.


Parameters

attr
(Input) The address of the thread attributes object to be destroyed

Return Value

0
pthread_attr_destroy() was successful.
value
pthread_attr_destroy() was not successful. value is set to indicate the error condition.

Error Conditions

If pthread_attr_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.

[EINVAL]
The value specified for the argument is not correct.

Related Information


Example

See Code disclaimer information for information pertaining to code examples.

#define _MULTI_THREADED
#include <pthread.h>
#include <stdio.h>
#include "check.h"

void *threadfunc(void *parm)
{
  printf("Thread created using an default attributes\n");
  return NULL;
}

int main(int argc, char **argv)
{
  pthread_t             thread;
  int                   rc=0;
  pthread_attr_t        pta;

  printf("Enter Testcase - %s\n", argv[0]);

  printf("Create a thread attributes object\n");
  rc = pthread_attr_init(&pta);
  checkResults("pthread_attr_init()\n", rc);

  printf("Create a thread using the attributes object\n");
  rc = pthread_create(&thread, &pta, threadfunc, NULL);
  checkResults("pthread_create()\n", rc);

  printf("Create a thread using the default attributes\n");
  rc = pthread_create(&thread, NULL, threadfunc, NULL);
  checkResults("pthread_create()\n", rc);

  printf("Destroy thread attributes object\n");
  rc = pthread_attr_destroy(&pta);
  checkResults("pthread_attr_destroy()\n", rc);

  /* sleep() is not a very robust way to wait for the thread */
  sleep(5);

  printf("Main completed\n");
  return 0;
}

Output:

Enter Testcase - QP0WTEST/TAINI0
Create a thread attributes object
Create a thread using the attributes object
Create a thread using the default attributes
Destroy thread attributes object
Thread created using an default attributes
Thread created using an default attributes
Main completed


API introduced: V4R3
Top | Pthread APIs | APIs by category