Module: xenomai-forge
Branch: next
Commit: 6b6e68cd5d248f60fd9687fac818adde27f0dbde
URL:    
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=6b6e68cd5d248f60fd9687fac818adde27f0dbde

Author: Philippe Gerum <r...@xenomai.org>
Date:   Wed May  8 12:35:56 2013 +0200

copperplate/semobj: sanitize semaphore scope attribute

---

 include/copperplate/reference.h |    2 +-
 lib/copperplate/semobj.c        |    6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/include/copperplate/reference.h b/include/copperplate/reference.h
index 05dbde4..055f8f0 100644
--- a/include/copperplate/reference.h
+++ b/include/copperplate/reference.h
@@ -107,7 +107,7 @@ int __fnref_register(const char *libname,
 #define __memchk(base, addr)   pshared_check(base, addr)
 
 #define mutex_scope_attribute  PTHREAD_PROCESS_SHARED
-#define sem_scope_attribute    SEM_PSHARED
+#define sem_scope_attribute    1
 #define thread_scope_attribute PTHREAD_SCOPE_SYSTEM
 #define monitor_scope_attribute        COBALT_MONITOR_SHARED
 #define event_scope_attribute  COBALT_EVENT_SHARED
diff --git a/lib/copperplate/semobj.c b/lib/copperplate/semobj.c
index de89ed9..38919e6 100644
--- a/lib/copperplate/semobj.c
+++ b/lib/copperplate/semobj.c
@@ -27,7 +27,11 @@
 int semobj_init(struct semobj *smobj, int flags, int value,
                fnref_type(void (*)(struct semobj *smobj)) finalizer)
 {
-       int ret, sem_flags = sem_scope_attribute|SEM_REPORT|SEM_RAWCLOCK;
+       int ret, sem_flags;
+
+       sem_flags = SEM_REPORT|SEM_RAWCLOCK;
+       if (sem_scope_attribute)
+               sem_flags |= SEM_PSHARED;
 
        if ((flags & SEMOBJ_PRIO) == 0)
                sem_flags |= SEM_FIFO;


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai-git

Reply via email to