in deadlock.go func lock(lockFn func(), ptr interface{})
in line 161 lo.mu.Lock() //you lock lo.mu firstly
in line 167 Opts.mu.Lock() //you lock Opts.mu secondly
but
in line 192 lo.mu.Unlock() //you unlock lo.mu firstly
in line 193 Opts.mu.UnLock() //you unlock Opts.mu secondly
in deadlock.go func lock(lockFn func(), ptr interface{}) in line 161 lo.mu.Lock() //you lock lo.mu firstly in line 167 Opts.mu.Lock() //you lock Opts.mu secondly but in line 192 lo.mu.Unlock() //you unlock lo.mu firstly in line 193 Opts.mu.UnLock() //you unlock Opts.mu secondly
Is that OK?