diff options
Diffstat (limited to 'cpukit/rtems')
-rw-r--r-- | cpukit/rtems/src/semflush.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/cpukit/rtems/src/semflush.c b/cpukit/rtems/src/semflush.c index c58480c734..2c0c4f5073 100644 --- a/cpukit/rtems/src/semflush.c +++ b/cpukit/rtems/src/semflush.c @@ -52,6 +52,12 @@ * error code - if unsuccessful */ +#if defined(RTEMS_MULTIPROCESSING) +#define SEND_OBJECT_WAS_DELETED _Semaphore_MP_Send_object_was_deleted +#else +#define SEND_OBJECT_WAS_DELETED NULL +#endif + rtems_status_code rtems_semaphore_flush( Objects_Id id ) @@ -75,16 +81,17 @@ rtems_status_code rtems_semaphore_flush( if ( _Attributes_Is_binary_semaphore(the_semaphore->attribute_set) ) { _CORE_mutex_Flush( &the_semaphore->Core_control.mutex, - NULL, + SEND_OBJECT_WAS_DELETED, CORE_MUTEX_STATUS_UNSATISFIED_NOWAIT ); } else { _CORE_semaphore_Flush( &the_semaphore->Core_control.semaphore, - NULL, + SEND_OBJECT_WAS_DELETED, CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT ); } + _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; } |