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/70F164B9-88EB-414F-9E61-378C247BF957%40ix.netcom.com.