Busy means would-block, yes. Burak thanks, but that doesn't work for read-lock.
On Tuesday, December 3, 2019 at 5:39:48 PM UTC-8, Robert Engels wrote: > > It depends then, because technically the Go RW lock queues readers behind > a waiting writer so “busy” is somewhat undefined. If “busy” means “would > block” you can still do it - I’ll post the code tonight. > > > On Dec 3, 2019, at 6:49 PM, Robert Engels <ren...@ix.netcom.com > <javascript:>> wrote: > > > > I would use an atomic and a lock instead of two locks. > > > >>> On Dec 3, 2019, at 6:35 PM, burak serdar <bse...@computer.org > <javascript:>> wrote: > >>> > >>> On Tue, Dec 3, 2019 at 5:21 PM Liam Breck <networ...@gmail.com > <javascript:>> 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 golan...@googlegroups.com <javascript:>. > >>> 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 golan...@googlegroups.com <javascript:>. > >> To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/CAMV2RqrDeBNhkeswg%2BhdCf1kSzMEJduota%3D6UrNq4z2PQRtzEQ%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/022a5bb5-be27-4721-afe4-7e08f4531a3d%40googlegroups.com.