diff --git a/c/src/exec/posix/src/cond.c b/c/src/exec/posix/src/cond.c index 89002876b5..25c175948f 100644 --- a/c/src/exec/posix/src/cond.c +++ b/c/src/exec/posix/src/cond.c @@ -256,8 +256,10 @@ int pthread_cond_destroy( return EINVAL; case OBJECTS_LOCAL: - if ( _Thread_queue_First( &the_cond->Wait_queue ) ) + if ( _Thread_queue_First( &the_cond->Wait_queue ) ) { + _Thread_Enable_dispatch(); return EBUSY; + } _Objects_Close( &_POSIX_Condition_variables_Information, diff --git a/cpukit/posix/src/cond.c b/cpukit/posix/src/cond.c index 89002876b5..25c175948f 100644 --- a/cpukit/posix/src/cond.c +++ b/cpukit/posix/src/cond.c @@ -256,8 +256,10 @@ int pthread_cond_destroy( return EINVAL; case OBJECTS_LOCAL: - if ( _Thread_queue_First( &the_cond->Wait_queue ) ) + if ( _Thread_queue_First( &the_cond->Wait_queue ) ) { + _Thread_Enable_dispatch(); return EBUSY; + } _Objects_Close( &_POSIX_Condition_variables_Information,