#include <pthread.h>
|
|
int
pthread_mutexattr_init (pthread_mutexattr_t *attr); |
|
int
pthread_mutexattr_destroy (pthread_mutexattr_t *attr); |
|
int
pthread_mutexattr_settype (pthread_mutexattr_t *attr, int type); |
|
int
pthread_mutexattr_gettype (pthread_mutexattr_t *attr, int *type); |
|
int
pthread_mutexattr_getpshared (pthread_mutexattr_t *attr, int *pshared); |
|
int
pthread_mutexattr_setpshared (pthread_mutexattr_t *attr, int pshared); |
The pthread_mutexattr_init function initializes attr with all the default mutex attributes.
The pthread_mutexattr_destroy function destroys attr.
The pthread_mutexattr_set* functions set the attribute that corresponds to each function name.
The pthread_mutexattr_get* functions copy the value of the attribute that corresponds to each function name to the location pointed to by the second function parameter.
pthread_mutexattr_t mta;
int rc;
/* Initialize a mutex attributes object */
if((rc=pthread_mutexattr_init(&mta)) != 0)
{
fprintf(stderr,"Cannot initialize mutex attributes object\n");
return -1;
}
/* Destroy the mutex attributes object */
if(pthread_mutexattr_destroy(&mta) != 0)
{
fprintf(stderr,"Error at pthread_mutexattr_destroy(), rc=%d\n", rc);
return -1;
}
pthread_mutexattr_t mta;
int pshared;
/* Initialize a mutex attributes object */
if(pthread_mutexattr_init(&mta) != 0)
{
perror("Error at pthread_mutexattr_init()\n");
return -1;
}
/* The default ’pshared’ attribute is PTHREAD_PROCESS_PRIVATE */
if(pthread_mutexattr_getpshared(&mta, &pshared) != 0)
{
fprintf(stderr,"Error obtaining the attribute process-shared\n");
return -1;
}
if (pshared != PTHREAD_PROCESS_PRIVATE)
printf (" pshared is NOT PTHREAD_PROCESS_PRIVATE\n");
pthread_mutexattr_t mta;
int type;
/* Initialize a mutex attributes object */
if(pthread_mutexattr_init(&mta) != 0)
{
perror("Error at pthread_mutexattr_init()\n");
return -1;
}
/* The default ’type’ attribute is PTHREAD_MUTEX_DEFAULT */
if(pthread_mutexattr_gettype(&mta, &type) != 0)
{
fprintf(stderr,"pthread_mutexattr_gettype(): Error obtaining the attribute ’type’\n");
return -1;
}
if(type != PTHREAD_MUTEX_DEFAULT)
{
printf("FAILED: Incorrect default mutexattr ’type’ value: %d\n", type);
return -1;
}
pthread_mutexattr_t mta;
int rc;
/* Initialize a mutex attributes object */
if((rc=pthread_mutexattr_init(&mta)) != 0)
{
fprintf(stderr,"Cannot initialize mutex attributes object\n");
return -1;
}
/* Destroy the mutex attributes object */
if(pthread_mutexattr_destroy(&mta) != 0)
{
fprintf(stderr,"Error at pthread_mutexattr_destroy(), rc=%d\n", rc);
return -1;
}
pthread_mutexattr_t mta;
int ret;
/* Initialize a mutex attributes object */
if(pthread_mutexattr_init(&mta) != 0)
{
perror("Error at pthread_mutexattr_init()\n");
return -1;
}
/* Set the ’pshared’ attribute to PTHREAD_PROCESS_PRIVATE */
if((ret=pthread_mutexattr_setpshared(&mta, PTHREAD_PROCESS_PRIVATE)) != 0)
{
printf("FAILED: Cannot set pshared attribute to PTHREAD_PROCESS_PRIVATE. Error: %d\n", ret);
return -1;
}
pthread_mutexattr_t mta;
int type;
/* Initialize a mutex attributes object */
if(pthread_mutexattr_init(&mta) != 0)
{
perror("Error at pthread_mutexattr_init()\n");
return -1;
}
if(pthread_mutexattr_gettype(&mta, &type) != 0)
{
printf("Error getting the attribute ’type’\n");
return -1;
}
if(type != PTHREAD_MUTEX_DEFAULT)
{
printf("FAILED: Default value of the ’type’ attribute is not PTHREAD_MUTEX_DEFAULT \n");
return -1;
}
if(pthread_mutexattr_settype(&mta, PTHREAD_MUTEX_NORMAL) != 0)
{
printf("FAILED: Error setting the attribute ’type’\n");
return -1;
}
| [EINVAL] | |
| Invalid value for attr. | |
The pthread_mutexattr_destroy function will fail if:
| [EINVAL] | |
| Invalid value for attr. | |
The pthread_mutexattr_settype function will fail if:
| [EINVAL] | |
| Invalid value for attr, or invalid value for type. | |
The pthread_mutexattr_gettype function will fail if:
| [EINVAL] | |
| Invalid value for attr. | |
The pthread_mutexattr_setpshared function will fail if:
| [EINVAL] | |
| Invalid value for attr, or invalid value for type. | |
The pthread_mutexattr_getpshared function will fail if:
| [EINVAL] | |
| Invalid value for attr. | |
|
© 2005-2007 Nokia |