两次解锁互斥体是否安全?我的代码:
var m sync.RWMutex = sync.RWMutex{}
func Read() {
m.RLock()
defer m.RUnlock()
// Do something that needs lock
err := SomeFunction1()
if err != nil {
return
}
m.RUnlock()
// Do something that does not need lock
SomeFunction2()
}
我需要defer m.RUnlock()案例SomeFunction1()返回错误。但是当SomeFunction1()返回没有错误时,m会被m.RUnlock()和解锁两次defer m.RUnlock()。
两次解锁互斥体是否安全?如果没有,我应该如何修复我的代码?
繁花如伊
子衿沉夜
慕无忌1623718
相关分类