summaryrefslogtreecommitdiff
path: root/libpthread/linuxthreads/sysdeps/pthread
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2018-04-22 18:59:13 +0100
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2018-04-22 19:01:57 +0100
commit04a676f3c8d2443499f27612f69ee88e12089e61 (patch)
treea6dac60812a5c5c748aa67330b81a36d667f3b9d /libpthread/linuxthreads/sysdeps/pthread
parentd86bd35298834f3162459dde763f7976f5c2a523 (diff)
linuxthreads: implement pthread_condattr_{s,g}etclock()
More applications are using pthread_condattr_setclock()/ pthread_condattr_getclock() in their code. Port these two functions from NPTL over to be more compatible.
Diffstat (limited to 'libpthread/linuxthreads/sysdeps/pthread')
-rw-r--r--libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h9
-rw-r--r--libpthread/linuxthreads/sysdeps/pthread/pthread.h12
2 files changed, 18 insertions, 3 deletions
diff --git a/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h b/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
index 3eb592919..638dc75c9 100644
--- a/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
+++ b/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
@@ -25,6 +25,8 @@
#define __need_schedparam
#include <bits/sched.h>
+#define __SIZEOF_PTHREAD_CONDATTR_T 4
+
/* Fast locks (not abstract because mutexes and conditions aren't abstract). */
struct _pthread_fastlock
{
@@ -63,12 +65,13 @@ typedef struct
} pthread_cond_t;
-/* Attribute for conditionally variables. */
-typedef struct
+typedef union
{
- int __dummy;
+ char __size[__SIZEOF_PTHREAD_CONDATTR_T];
+ int __align;
} pthread_condattr_t;
+
/* Keys for thread-specific data */
typedef unsigned int pthread_key_t;
diff --git a/libpthread/linuxthreads/sysdeps/pthread/pthread.h b/libpthread/linuxthreads/sysdeps/pthread/pthread.h
index 0d175025b..9bcd887ed 100644
--- a/libpthread/linuxthreads/sysdeps/pthread/pthread.h
+++ b/libpthread/linuxthreads/sysdeps/pthread/pthread.h
@@ -455,6 +455,18 @@ extern int pthread_condattr_getpshared (const pthread_condattr_t *
extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
int __pshared) __THROW;
+#ifdef __USE_XOPEN2K
+/* Get the clock selected for the condition variable attribute ATTR. */
+extern int pthread_condattr_getclock (const pthread_condattr_t *
+ __restrict __attr,
+ __clockid_t *__restrict __clock_id)
+ __THROW __nonnull ((1, 2));
+
+/* Set the clock selected for the condition variable attribute ATTR. */
+extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
+ __clockid_t __clock_id)
+ __THROW __nonnull ((1));
+#endif
#if defined __USE_UNIX98 || defined __USE_XOPEN2K
/* Functions for handling read-write locks. */