Ignore:
Timestamp:
Oct 15, 2004, 9:05:07 PM (17 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
be216b3
Parents:
ba1a188c
Message:

2004-10-15 Joel Sherrill <joel@…>

PR 692/rtems

  • rtems/src/regiongetsegment.c, rtems/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.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/rtems/src/regiongetsegment.c

    rba1a188c r626ace4  
    9999      }
    100100
     101      /*
     102       *  Switch from using the memory allocation mutex to using a
     103       *  dispatching disabled critical section.  We have to do this
     104       *  because this thread is going to block.
     105       */
     106      _Thread_Disable_dispatch();
     107      _RTEMS_Unlock_allocator();
     108
    101109      executing->Wait.queue           = &the_region->Wait_queue;
    102110      executing->Wait.id              = id;
     
    108116      _Thread_queue_Enqueue( &the_region->Wait_queue, timeout );
    109117
    110       _RTEMS_Unlock_allocator();
     118      _Thread_Enable_dispatch();
     119
    111120      return (rtems_status_code) executing->Wait.return_code;
    112121  }
Note: See TracChangeset for help on using the changeset viewer.