Deletion Prevention

Regions require careful programming to avoid deadlocks.
  • A thread controlling a region should not suspend itself or it might hold the region indefinitely
  • When threads need to control more than one region, waiting for all processes must always be done in the same order and released in the reverse order or else a dead lock may occur.
 
A thread that controls a region only is deleted once it gives up control of the region. A region that is controlled by a thread only is deleted once the thread gives up control of this region. This may result in unexpectedly long delays in executing the delete operations – even in deadlocks if the application is implemented in an awkward way.