Browse Source

implement pthread_condattr_* interfaces

note that, while the attributes are stored, they are not used in
pthread_cond_init yet.
rs-1.0
Rich Felker 15 years ago
parent
commit
b4d40e44e3
  1. 6
      src/thread/pthread_condattr_destroy.c
  2. 7
      src/thread/pthread_condattr_getclock.c
  3. 7
      src/thread/pthread_condattr_getpshared.c
  4. 7
      src/thread/pthread_condattr_init.c
  5. 9
      src/thread/pthread_condattr_setclock.c
  6. 9
      src/thread/pthread_condattr_setpshared.c

6
src/thread/pthread_condattr_destroy.c

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

7
src/thread/pthread_condattr_getclock.c

@ -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;
}

7
src/thread/pthread_condattr_getpshared.c

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

7
src/thread/pthread_condattr_init.c

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

9
src/thread/pthread_condattr_setclock.c

@ -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;
}

9
src/thread/pthread_condattr_setpshared.c

@ -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;
}
Loading…
Cancel
Save