From 0be243352f2e2b263f5db2acf10d4a5390e94dc4 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 17 Mar 2005 14:30:40 +0000 Subject: [PATCH] 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. --- cpukit/rtems/ChangeLog | 8 ++++++++ cpukit/rtems/src/regionreturnsegment.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) 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 );