On Wed, Jan 18, 2017 at 02:42:30PM +0800, Boqun Feng wrote:
> On Fri, Dec 09, 2016 at 02:12:11PM +0900, Byungchul Park wrote:
> [...]
> > +Example 1:
> > +
> > +   CONTEXT X                  CONTEXT Y
> > +   ---------                  ---------
> > +   mutext_lock A
> > +                      lock_page B
> > +   lock_page B
> > +                      mutext_lock A /* DEADLOCK */
> 
> s/mutext_lock/mutex_lock

Thank you.

> > +Example 3:
> > +
> > +   CONTEXT X                  CONTEXT Y
> > +   ---------                  ---------
> > +                      mutex_lock A
> > +   mutex_lock A
> > +   mutex_unlock A
> > +                      wait_for_complete B /* DEADLOCK */
> 
> I think this part better be:
> 
>    CONTEXT X             CONTEXT Y
>    ---------             ---------
>                          mutex_lock A
>    mutex_lock A
>                          wait_for_complete B /* DEADLOCK */
>    mutex_unlock A
> 
> , right? Because Y triggers DEADLOCK before X could run mutex_unlock().

There's no different between two examples.

No matter which one is chosen, mutex_lock A in CONTEXT X cannot be passed.

> 
> Regards,
> Boqun


Reply via email to