[Xenomai-git] Philippe Gerum : copperplate/semobj: add uninit cleanup helper

2015-08-15 Thread git repository hosting
Module: xenomai-3
Branch: master
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


[Xenomai-git] Philippe Gerum : copperplate/semobj: add uninit cleanup helper

2015-08-10 Thread git repository hosting
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