diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2014-09-29 16:03:56 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2014-09-29 16:03:56 -0600 |
commit | 5160874dedc96959f4f1e68f32c6a634568c539e (patch) | |
tree | 52c6715a5e7d97e9bd6a9be51190d80cb58d8612 | |
parent | e66fe204e0f9eed047fccdbd7b7fd31f264a2bc7 (diff) | |
download | nuttx-5160874dedc96959f4f1e68f32c6a634568c539e.tar.gz nuttx-5160874dedc96959f4f1e68f32c6a634568c539e.tar.bz2 nuttx-5160874dedc96959f4f1e68f32c6a634568c539e.zip |
First round of fixes for re-implemented VFS message queues
-rw-r--r-- | apps/examples/ostest/mqueue.c | 4 | ||||
-rw-r--r-- | nuttx/fs/mqueue/mq_close.c | 4 | ||||
-rw-r--r-- | nuttx/fs/mqueue/mq_open.c | 1 | ||||
-rw-r--r-- | nuttx/fs/mqueue/mq_unlink.c | 11 | ||||
-rw-r--r-- | nuttx/fs/mqueue/mqueue.h | 2 |
5 files changed, 12 insertions, 10 deletions
diff --git a/apps/examples/ostest/mqueue.c b/apps/examples/ostest/mqueue.c index b747af089..b5f1ffb56 100644 --- a/apps/examples/ostest/mqueue.c +++ b/apps/examples/ostest/mqueue.c @@ -130,7 +130,7 @@ static void *sender_thread(void *arg) */ g_send_mqfd = mq_open("mqueue", O_WRONLY|O_CREAT, 0666, &attr); - if (g_send_mqfd < 0) + if (g_send_mqfd == (mqd_t)-1) { printf("sender_thread: ERROR mq_open failed\n"); pthread_exit((pthread_addr_t)1); @@ -435,7 +435,7 @@ void mqueue_test(void) if (g_send_mqfd) { - printf("mqueue_test: ERROR receive mqd_t left open\n"); + printf("mqueue_test: ERROR receiver mqd_t left open\n"); if (mq_close(g_send_mqfd) < 0) { printf("sender_thread: ERROR mq_close failed\n"); diff --git a/nuttx/fs/mqueue/mq_close.c b/nuttx/fs/mqueue/mq_close.c index a83772ee2..7df2d8a26 100644 --- a/nuttx/fs/mqueue/mq_close.c +++ b/nuttx/fs/mqueue/mq_close.c @@ -149,7 +149,7 @@ int mq_close(mqd_t mqdes) /* Decrement the reference count on the inode */ - mq_release(inode); + mq_inode_release(inode); } return OK; @@ -169,7 +169,7 @@ int mq_close(mqd_t mqdes) * ****************************************************************************/ -void mq_release(FAR struct inode *inode) +void mq_inode_release(FAR struct inode *inode) { /* Decrement the reference count on the inode */ diff --git a/nuttx/fs/mqueue/mq_open.c b/nuttx/fs/mqueue/mq_open.c index 15cae3f4f..595adeb97 100644 --- a/nuttx/fs/mqueue/mq_open.c +++ b/nuttx/fs/mqueue/mq_open.c @@ -231,6 +231,7 @@ mqd_t mq_open(const char *mq_name, int oflags, ...) /* Bind the message queue and the inode structure */ + INODE_SET_MQUEUE(inode); inode->u.i_mqueue = msgq; msgq->inode = inode; } diff --git a/nuttx/fs/mqueue/mq_unlink.c b/nuttx/fs/mqueue/mq_unlink.c index 1e7ae5db3..2caf0df6b 100644 --- a/nuttx/fs/mqueue/mq_unlink.c +++ b/nuttx/fs/mqueue/mq_unlink.c @@ -151,14 +151,15 @@ int mq_unlink(FAR const char *mq_name) UNUSED(ret); /* Now we do not release the reference count in the normal way (by calling - * inode release. Rather, we call sem_close(). sem_close will decrement - * the reference count on the inode. But it will also free the message queue - * if that reference count decrements to zero. Since we hold one reference, - * that can only occur if the message queue is not in-use. + * inode release. Rather, we call mq_inode_release(). mq_inode_release + * will decrement the reference count on the inode. But it will also free + * the message queue if that reference count decrements to zero. Since we + * hold one reference, that can only occur if the message queue is not + * in-use. */ inode_semgive(); - mq_release(inode); + mq_inode_release(inode); return OK; errout_with_semaphore: diff --git a/nuttx/fs/mqueue/mqueue.h b/nuttx/fs/mqueue/mqueue.h index 89d5ab700..bcea7ecce 100644 --- a/nuttx/fs/mqueue/mqueue.h +++ b/nuttx/fs/mqueue/mqueue.h @@ -89,7 +89,7 @@ extern "C" * ****************************************************************************/ -void mq_release(FAR struct inode *inode); +void mq_inode_release(FAR struct inode *inode); #undef EXTERN #ifdef __cplusplus |