diff --git a/cpukit/rtems/ChangeLog b/cpukit/rtems/ChangeLog index 872a271ea3..cc58bf5b38 100644 --- a/cpukit/rtems/ChangeLog +++ b/cpukit/rtems/ChangeLog @@ -1,3 +1,11 @@ +2005-03-17 Joel Sherrill + + PR 692/rtems + * src/regiongetsegment.c, src/regionreturnsegment.c: The Region + Manager did not follow the proper protocol when blocking and + unblocking tasks waiting on buffers. This was a bug introduced with + the transition to an Allocation Mutex. + 2005-03-17 Joel Sherrill PR 745/rtems diff --git a/cpukit/rtems/src/regionreturnsegment.c b/cpukit/rtems/src/regionreturnsegment.c index c9c134e02b..990fd5a714 100644 --- a/cpukit/rtems/src/regionreturnsegment.c +++ b/cpukit/rtems/src/regionreturnsegment.c @@ -104,8 +104,8 @@ rtems_status_code rtems_region_return_segment( * NOTE: The following loop is O(n) where n is the number of * threads whose memory request is satisfied. */ - _RTEMS_Unlock_allocator(); _Thread_Disable_dispatch(); + _RTEMS_Unlock_allocator(); for ( ; ; ) { the_thread = _Thread_queue_First( &the_region->Wait_queue );