From b9fe86d2d7c66ceff3bd07a6fc82bbe3063e593c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 7 Apr 2008 10:57:01 +0000 Subject: [PATCH] * Added pthread_setconcurrency(), and pthread_getconcurrency() functions. * Since we use a 1:1 mapping, they don't do anything besides remembering the level set, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24855 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/posix/pthread.h | 2 ++ src/system/libroot/posix/pthread/pthread.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/headers/posix/pthread.h b/headers/posix/pthread.h index 5ab2ad5e95..d9c52d5941 100644 --- a/headers/posix/pthread.h +++ b/headers/posix/pthread.h @@ -163,6 +163,8 @@ extern void pthread_exit(void *value_ptr); extern int pthread_join(pthread_t thread, void **_value); extern pthread_t pthread_self(void); extern int pthread_kill(pthread_t thread, int sig); +extern int pthread_getconcurrency(void); +extern int pthread_setconcurrency(int newLevel); extern int pthread_cancel(pthread_t thread); extern int pthread_setcancelstate(int state, int *_oldState); diff --git a/src/system/libroot/posix/pthread/pthread.c b/src/system/libroot/posix/pthread/pthread.c index 2a711b5f12..f4822c26a3 100644 --- a/src/system/libroot/posix/pthread/pthread.c +++ b/src/system/libroot/posix/pthread/pthread.c @@ -19,6 +19,7 @@ static const pthread_attr pthread_attr_default = { static int32 sPthreadSlot = -1; +static int sConcurrencyLevel; struct pthread_thread * @@ -157,3 +158,20 @@ pthread_detach(pthread_t thread) return 0; } + +int +pthread_getconcurrency(void) +{ + return sConcurrencyLevel; +} + + +int +pthread_setconcurrency(int newLevel) +{ + if (newLevel < 0) + return EINVAL; + + sConcurrencyLevel = newLevel; + return 0; +}