diff options
Diffstat (limited to 'cpukit/posix/src/semclose.c')
-rw-r--r-- | cpukit/posix/src/semclose.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/cpukit/posix/src/semclose.c b/cpukit/posix/src/semclose.c index 9f5dc040f2..2de949ea73 100644 --- a/cpukit/posix/src/semclose.c +++ b/cpukit/posix/src/semclose.c @@ -39,16 +39,19 @@ int sem_close( the_semaphore = _POSIX_Semaphore_Get( sem, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: -#endif - case OBJECTS_ERROR: - rtems_set_errno_and_return_minus_one( EINVAL ); + case OBJECTS_LOCAL: the_semaphore->open_count -= 1; _POSIX_Semaphore_Delete( the_semaphore ); _Thread_Enable_dispatch(); return 0; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: +#endif + case OBJECTS_ERROR: + break; } - return POSIX_BOTTOM_REACHED(); + + rtems_set_errno_and_return_minus_one( EINVAL ); } |