diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-03-07 16:20:12 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-03-07 16:20:12 -0500 |
commit | b4d40e44e36f28cf5a52e9f0c12e622c3baf1657 (patch) | |
tree | 5d23cf8dc209bb1eacd31ebaa223465077e37cfa /src/thread | |
parent | 63b06c0e904fbdbc87b3e17d067b62afe9bb3dd1 (diff) | |
download | musl-b4d40e44e36f28cf5a52e9f0c12e622c3baf1657.tar.gz musl-b4d40e44e36f28cf5a52e9f0c12e622c3baf1657.tar.xz musl-b4d40e44e36f28cf5a52e9f0c12e622c3baf1657.zip |
implement pthread_condattr_* interfaces
note that, while the attributes are stored, they are not used in pthread_cond_init yet.
Diffstat (limited to 'src/thread')
-rw-r--r-- | src/thread/pthread_condattr_destroy.c | 6 | ||||
-rw-r--r-- | src/thread/pthread_condattr_getclock.c | 7 | ||||
-rw-r--r-- | src/thread/pthread_condattr_getpshared.c | 7 | ||||
-rw-r--r-- | src/thread/pthread_condattr_init.c | 7 | ||||
-rw-r--r-- | src/thread/pthread_condattr_setclock.c | 9 | ||||
-rw-r--r-- | src/thread/pthread_condattr_setpshared.c | 9 |
6 files changed, 45 insertions, 0 deletions
diff --git a/src/thread/pthread_condattr_destroy.c b/src/thread/pthread_condattr_destroy.c new file mode 100644 index 00000000..c54ec412 --- /dev/null +++ b/src/thread/pthread_condattr_destroy.c @@ -0,0 +1,6 @@ +#include "pthread_impl.h" + +int pthread_condattr_destroy(pthread_condattr_t *a) +{ + return 0; +} diff --git a/src/thread/pthread_condattr_getclock.c b/src/thread/pthread_condattr_getclock.c new file mode 100644 index 00000000..a77cc3e0 --- /dev/null +++ b/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; +} diff --git a/src/thread/pthread_condattr_getpshared.c b/src/thread/pthread_condattr_getpshared.c new file mode 100644 index 00000000..b620976c --- /dev/null +++ b/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; +} diff --git a/src/thread/pthread_condattr_init.c b/src/thread/pthread_condattr_init.c new file mode 100644 index 00000000..6d09ac1e --- /dev/null +++ b/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; +} diff --git a/src/thread/pthread_condattr_setclock.c b/src/thread/pthread_condattr_setclock.c new file mode 100644 index 00000000..bf745523 --- /dev/null +++ b/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; +} diff --git a/src/thread/pthread_condattr_setpshared.c b/src/thread/pthread_condattr_setpshared.c new file mode 100644 index 00000000..c0cc1ef9 --- /dev/null +++ b/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; +} |