Module: xenomai-gch
Branch: for-forge
Commit: 279726bbef4eea1c6d47e5a2cac7d87e411e4947
URL:    
http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=279726bbef4eea1c6d47e5a2cac7d87e411e4947

Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org>
Date:   Tue Dec 24 19:07:46 2013 +0100

addendum mqueue: add cleanup debugs

---

 kernel/cobalt/posix/mqueue.c |   15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/kernel/cobalt/posix/mqueue.c b/kernel/cobalt/posix/mqueue.c
index d4a944c..c39e425 100644
--- a/kernel/cobalt/posix/mqueue.c
+++ b/kernel/cobalt/posix/mqueue.c
@@ -200,6 +200,10 @@ static inline void mq_destroy(struct cobalt_mq *mq)
        int resched;
        spl_t s;
 
+#if XENO_DEBUG(COBALT)
+       printk(XENO_INFO "deleting Cobalt message queue \"/%s\"\n", mq->name);
+#endif
+
        xnlock_get_irqsave(&nklock, s);
        resched = (xnsynch_destroy(&mq->receivers) == XNSYNCH_RESCHED);
        resched = (xnsynch_destroy(&mq->senders) == XNSYNCH_RESCHED) || resched;
@@ -233,7 +237,11 @@ static void mqd_destroy(struct xnfd *xnfd)
        struct cobalt_mqd *mqd = container_of(xnfd, struct cobalt_mqd, xnfd);
        struct cobalt_mq *mq = mqd->mq;
        spl_t s;
-       
+
+#if XENO_DEBUG(COBALT)
+       printk(XENO_INFO "closing Cobalt message queue descriptor %d\n",
+               xnfd_getfd(&mqd->xnfd));
+#endif
        xnfree(mqd);
        xnlock_get_irqsave(&nklock, s);
        mq_unref_inner(mq, s);
@@ -547,6 +555,8 @@ static inline int mq_unlink(const char *name)
        err = xnregistry_bind(&name[1], XN_NONBLOCK, XN_RELATIVE, &handle);
        if (err == -EWOULDBLOCK)
                return -ENOENT;
+       if (err)
+               return err;
 
        xnlock_get_irqsave(&nklock, s);
        mq = xnregistry_fetch(handle);
@@ -1263,8 +1273,7 @@ void cobalt_mq_pkg_cleanup(void)
                xnlock_put_irqrestore(&nklock, s);
                mq_destroy(mq);
 #if XENO_DEBUG(COBALT)
-               printk(XENO_INFO "unlinking Cobalt mq \"%s\"\n",
-                      mq->nodebase.name);
+               printk(XENO_INFO "unlinking Cobalt mq \"/%s\"\n", mq->name);
 #endif /* XENO_DEBUG(COBALT) */
                xnlock_get_irqsave(&nklock, s);
        }


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

Reply via email to