From 37999b8a998a16745afd4b9355fb15c5a55dfae2 Mon Sep 17 00:00:00 2001 From: faggioli Date: Wed, 19 Dec 2007 09:22:31 +0000 Subject: [PATCH] Added the support for POSIX98 symbols for priority inheritance in mutexes if AQuoSA is used. git-svn-id: http://www.frescor.org/private/svn/frescor/fosa/trunk@967 35b4ef3e-fd22-0410-ab77-dab3279adceb --- include/fosa_opaque_types.h | 3 +++ src_aquosa/fosa_mutexes_and_condvars.c | 15 ++++++++++++--- src_aquosa/frsh_fosa.c | 2 -- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/include/fosa_opaque_types.h b/include/fosa_opaque_types.h index 4ac1c06..b587c91 100644 --- a/include/fosa_opaque_types.h +++ b/include/fosa_opaque_types.h @@ -74,6 +74,9 @@ #if defined(RT_LINUX) || defined(MARTE_OS) || defined(AQuoSA) +#ifdef AQuoSA +#define __USE_UNIX98 +#endif // AQuoSA #include #include #include diff --git a/src_aquosa/fosa_mutexes_and_condvars.c b/src_aquosa/fosa_mutexes_and_condvars.c index 32f4110..efe1701 100644 --- a/src_aquosa/fosa_mutexes_and_condvars.c +++ b/src_aquosa/fosa_mutexes_and_condvars.c @@ -62,14 +62,23 @@ /******************************************************* - * Mutexes with priority ceiling + * Mutexes with priority/bandwidth inheritance ******************************************************/ int fosa_mutex_init(frsh_mutex_t *mutex, int prioceiling) { - /* priority ceiling if, for now, ignored */ - return pthread_mutex_init(mutex, NULL); + pthread_mutexattr_t mutex_attr; + + /* prioceiling serves as a flag */ + if (prioceiling) { + /* We use priority inheritance as the default protocol */ + pthread_mutexattr_init(&mutex_attr); + pthread_mutexattr_setprotocol(&mutex_attr, PTHREAD_PRIO_INHERIT); + + return pthread_mutex_init(mutex, &mutex_attr); + } else + return pthread_mutex_init(mutex, NULL); } int fosa_mutex_destroy(frsh_mutex_t *mutex) diff --git a/src_aquosa/frsh_fosa.c b/src_aquosa/frsh_fosa.c index 493f477..f2a2d57 100644 --- a/src_aquosa/frsh_fosa.c +++ b/src_aquosa/frsh_fosa.c @@ -53,8 +53,6 @@ //================================================ #include "frsh_fosa.h" -#include -#include /************************* * Thread attributes -- 2.39.2