#define PTHREAD_CANCEL_ENABLE 0
#define PTHREAD_CANCEL_DISABLE 1
+#define PTHREAD_CANCEL_MASKED 2
#define PTHREAD_CANCEL_DEFERRED 0
#define PTHREAD_CANCEL_ASYNCHRONOUS 1
_Noreturn void pthread_exit(void *);
int pthread_join(pthread_t, void **);
-#ifdef __GNUC__
-__attribute__((const))
-#endif
pthread_t pthread_self(void);
int pthread_equal(pthread_t, pthread_t);
+#ifndef __cplusplus
#define pthread_equal(x,y) ((x)==(y))
+#endif
int pthread_setcancelstate(int, int *);
int pthread_setcanceltype(int, int *);
#define pthread_cleanup_pop(r) _pthread_cleanup_pop(&__cb, (r)); } while(0)
#ifdef _GNU_SOURCE
+struct cpu_set_t;
+int pthread_getaffinity_np(pthread_t, size_t, struct cpu_set_t *);
+int pthread_setaffinity_np(pthread_t, size_t, const struct cpu_set_t *);
int pthread_getattr_np(pthread_t, pthread_attr_t *);
#endif