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

Author: Philippe Gerum <r...@xenomai.org>
Date:   Mon Aug 10 18:07:05 2015 +0200

copperplate/semobj: add uninit cleanup helper

This one does not run the object finalizer, assuming a strictly
passive object (no waiters yet).

---

 include/copperplate/semobj.h |    2 ++
 lib/copperplate/semobj.c     |   12 ++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/include/copperplate/semobj.h b/include/copperplate/semobj.h
index dd2e642..4d9e0a5 100644
--- a/include/copperplate/semobj.h
+++ b/include/copperplate/semobj.h
@@ -66,6 +66,8 @@ int semobj_init(struct semobj *smobj,
 
 int semobj_destroy(struct semobj *smobj);
 
+void semobj_uninit(struct semobj *smobj);
+
 int semobj_post(struct semobj *smobj);
 
 int semobj_broadcast(struct semobj *smobj);
diff --git a/lib/copperplate/semobj.c b/lib/copperplate/semobj.c
index d056a7b..a615678 100644
--- a/lib/copperplate/semobj.c
+++ b/lib/copperplate/semobj.c
@@ -73,6 +73,13 @@ int semobj_destroy(struct semobj *smobj)
        return ret;
 }
 
+void semobj_uninit(struct semobj *smobj)
+{
+       int ret = __RT(sem_destroy(&smobj->core.sem));
+       assert(ret == 0);
+       (void)ret;
+}
+
 int semobj_post(struct semobj *smobj)
 {
        int ret;
@@ -217,6 +224,11 @@ int semobj_destroy(struct semobj *smobj)
        return syncobj_destroy(&smobj->core.sobj, &syns);
 }
 
+void semobj_uninit(struct semobj *smobj)
+{
+       syncobj_uninit(&smobj->core.sobj);
+}
+
 int semobj_post(struct semobj *smobj)
 {
        struct syncstate syns;


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

Reply via email to