On Tue, Dec 3, 2019 at 5:21 PM Liam Breck <networkimp...@gmail.com> wrote: > > I have a problem that is trivially solved via > > door sync.RWMutex > > func Reader() T { > if !door.TryRLock() { // missing in stdlib :-( > return busy > } > defer door.RUnlock() > ... > } > > func Writer() { > door.Lock() > defer door.Unlock() > ... > } > > How does one achieve this in Go?
Two locks and a bool? var door=sync.Mutex{} var x=sync.Mutex{} var b bool func trylock() bool { x.Lock() if b { x.Unlock() return false } b=true door.Lock() x.Unlock() return true } unlock: x.Lock() b=false door.Unlock() x.Unlock() > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/CAKvHMgTO%3DxfFQ_u7aO9UE-1vHHEKmdhr47sro2mnp6DkEb6mPA%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAMV2RqrDeBNhkeswg%2BhdCf1kSzMEJduota%3D6UrNq4z2PQRtzEQ%40mail.gmail.com.