summaryrefslogtreecommitdiff
path: root/apps/examples
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-09-28 13:08:57 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-09-28 13:08:57 -0600
commitbeff06c0279b1e95ad95c70fa2c64958c70975bd (patch)
tree83b2de6729b0301128cd5a88b87ab8e581e58873 /apps/examples
parentf39a578840f518d14628f9ad26a96199a9801333 (diff)
downloadpx4-nuttx-beff06c0279b1e95ad95c70fa2c64958c70975bd.tar.gz
px4-nuttx-beff06c0279b1e95ad95c70fa2c64958c70975bd.tar.bz2
px4-nuttx-beff06c0279b1e95ad95c70fa2c64958c70975bd.zip
Fix to bugs in initial commit of named semaphore test
Diffstat (limited to 'apps/examples')
-rw-r--r--apps/examples/ostest/nsem.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/apps/examples/ostest/nsem.c b/apps/examples/ostest/nsem.c
index 921b052b1..cef2282fb 100644
--- a/apps/examples/ostest/nsem.c
+++ b/apps/examples/ostest/nsem.c
@@ -38,9 +38,12 @@
***********************************************************************/
#include <stdio.h>
+#include <fcntl.h>
#include <pthread.h>
#include <semaphore.h>
#include <sched.h>
+#include <errno.h>
+
#include "ostest.h"
#ifdef CONFIG_FS_NAMED_SEMAPHORES
@@ -64,7 +67,7 @@
* Private Functions
***********************************************************************/
-static void *nsem_peer(void *parameter)
+static FAR void *nsem_peer(void *parameter)
{
FAR sem_t *sem1;
FAR sem_t *sem2;
@@ -85,7 +88,7 @@ static void *nsem_peer(void *parameter)
/* Open semaphore 2. We will create that one */
printf("nsem_peer: Create semaphore 2 with value == 0\n");
- sem2 = sem_open(SEM2_NAME, O_CREATE|O_EXCL, 0644, 0);
+ sem2 = sem_open(SEM2_NAME, O_CREAT|O_EXCL, 0644, 0);
if (sem1 == (FAR sem_t*)ERROR)
{
int errcode = errno;
@@ -130,12 +133,12 @@ void nsem_test(void)
/* Open semaphore 2. We will create that one */
printf("nsem_test: Create semaphore 1 with value == 0\n");
- sem2 = sem_open(SEM1_NAME, O_CREATE|O_EXCL, 0644, 0);
+ sem1 = sem_open(SEM1_NAME, O_CREAT|O_EXCL, 0644, 0);
if (sem1 == (FAR sem_t*)ERROR)
{
int errcode = errno;
printf("nsem_peer: ERROR: sem_open(1) failed: %d\n", errcode);
- return NULL;
+ return;
}
/* Start the peer thread */
@@ -171,6 +174,7 @@ void nsem_test(void)
/* Wait for the peer to post semaphore 1 */
+ printf("nsem_test: Wait on semaphore 1\n");
status = sem_wait(sem1);
if (status < 0)
{
@@ -182,6 +186,7 @@ void nsem_test(void)
/* Close sem1. It should already have been unlinked by the nsem_peer */
+ printf("nsem_test: Close semaphore 1\n");
sem_close(sem1);
/* Open semaphore 2. This should have already been created by
@@ -189,18 +194,19 @@ void nsem_test(void)
*/
printf("nsem_test: Open semaphore 2\n");
- sem1 = sem_open(SEM2_NAME, 0);
- if (sem1 == (FAR sem_t*)ERROR)
+ sem2 = sem_open(SEM2_NAME, 0);
+ if (sem2 == (FAR sem_t*)ERROR)
{
int errcode = errno;
printf("nsem_test: ERROR: sem_open(2) failed: %d\n", errcode);
pthread_cancel(peer);
- return NULL;
+ return;
}
/* Wait for the peer to post semaphore 2 */
- status = sem_wait(sem1);
+ printf("nsem_test: Wait on semaphore 2\n");
+ status = sem_wait(sem2);
if (status < 0)
{
int errcode = errno;
@@ -211,7 +217,8 @@ void nsem_test(void)
/* Close and unlink semaphore 2 */
- sem_close(sem1);
+ printf("nsem_test: Close and unlink semaphore 2\n");
+ sem_close(sem2);
sem_unlink(SEM2_NAME);
#ifdef SDCC