On Wed, Jan 18, 2017 at 09:14:59PM +0900, byungchul.park wrote: > +Example 3: > + > + CONTEXT X CONTEXT Y > + --------- --------- > + mutex_lock A > + mutex_lock A > + mutex_unlock A > + wait_for_complete B /* DEADLOCK */
Each line (across both columns) is a distinct point in time after the line before. Therefore, this states that "mutex_unlock A" happens before "wait_for_completion B", which is clearly impossible. You don't have to remove everything after mutex_lock A, but the unlock must not happen before context Y does the unlock.

