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.