implement pthread_condattr_* interfaces

note that, while the attributes are stored, they are not used in
pthread_cond_init yet.
This commit is contained in:
Rich Felker 2011-03-07 16:20:12 -05:00
parent 63b06c0e90
commit b4d40e44e3
6 changed files with 45 additions and 0 deletions

View File

@ -0,0 +1,6 @@
#include "pthread_impl.h"
int pthread_condattr_destroy(pthread_condattr_t *a)
{
return 0;
}

View File

@ -0,0 +1,7 @@
#include "pthread_impl.h"
int pthread_condattr_getclock(const pthread_condattr_t *a, clockid_t *clk)
{
*clk = *a & 0x7fffffff;
return 0;
}

View File

@ -0,0 +1,7 @@
#include "pthread_impl.h"
int pthread_condattr_getpshared(const pthread_condattr_t *a, int *pshared)
{
*pshared = *a>>31;
return 0;
}

View File

@ -0,0 +1,7 @@
#include "pthread_impl.h"
int pthread_condattr_init(pthread_condattr_t *a)
{
memset(a, 0, sizeof *a);
return 0;
}

View File

@ -0,0 +1,9 @@
#include "pthread_impl.h"
int pthread_condattr_setclock(pthread_condattr_t *a, clockid_t clk)
{
if (clk < 0) return EINVAL;
*a &= 0x80000000;
*a |= clk;
return 0;
}

View File

@ -0,0 +1,9 @@
#include "pthread_impl.h"
int pthread_condattr_setpshared(pthread_condattr_t *a, int pshared)
{
if (pshared > 1U) return EINVAL;
*a &= 0x7fffffff;
*a |= pshared<<31;
return 0;
}