]> rtime.felk.cvut.cz Git - frescor/fosa.git/commitdiff
Added the support for POSIX98 symbols for priority inheritance in mutexes if AQuoSA...
authorfaggioli <faggioli@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Wed, 19 Dec 2007 09:22:31 +0000 (09:22 +0000)
committerfaggioli <faggioli@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Wed, 19 Dec 2007 09:22:31 +0000 (09:22 +0000)
git-svn-id: http://www.frescor.org/private/svn/frescor/fosa/trunk@967 35b4ef3e-fd22-0410-ab77-dab3279adceb

include/fosa_opaque_types.h
src_aquosa/fosa_mutexes_and_condvars.c
src_aquosa/frsh_fosa.c

index 4ac1c06304589457121e457779d9e6cc46d5ab18..b587c91287cdc83bddbe4cf70db225a1be43c3d0 100644 (file)
@@ -74,6 +74,9 @@
 
 #if defined(RT_LINUX) || defined(MARTE_OS) || defined(AQuoSA)
 
+#ifdef AQuoSA
+#define __USE_UNIX98
+#endif // AQuoSA
 #include <pthread.h>
 #include <signal.h>
 #include <time.h>
index 32f4110a20b50cc33a85eee7463baec83d7fb3c3..efe1701ea87fbaa150fdf0d8655dd0a5cf83d18a 100644 (file)
 
 
 /*******************************************************
- * 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)
index 493f4776b48bcff233e13e9b5c581ecb357e1782..f2a2d5746f409e5501bda01eb1a4d41a36f5a232 100644 (file)
@@ -53,8 +53,6 @@
 //================================================
 
 #include "frsh_fosa.h"
-#include <pthread.h>
-#include <stdio.h>
 
 /*************************
  * Thread attributes