Can’t code on the phone but a cas on the atomic then take the lock. But if you never need to block you don’t even need the lock.
> On Dec 3, 2019, at 6:52 PM, Liam Breck <networkimp...@gmail.com> wrote: > > > Which looks like...? > >> On Tue, Dec 3, 2019, 4:50 PM Robert Engels <reng...@ix.netcom.com> wrote: >> I would use an atomic and a lock instead of two locks. >> >> > On Dec 3, 2019, at 6:35 PM, burak serdar <bser...@computer.org> wrote: >> > >> > 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. >> -- 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/51F93012-4B18-44B3-B535-E4BC1FAAAAD9%40ix.netcom.com.