{"push_id":2108432790,"size":1,"distinct_size":1,"ref":"refs/heads/mutex-blocking","head":"0bf7adf2c6b764a6010f014940b3021ad9f991da","before":"941a98e1dcd46ffeb2f7a56449359eff0e6139a3","commits":[{"sha":"0bf7adf2c6b764a6010f014940b3021ad9f991da","author":{"name":"Andrew Wilkins","email":"4ddce5a694de25641ae9496fe197716adeba88ef@gmail.com"},"message":"Blocking mutexes\n\nUpdate mutex implementations to make blocking\nsyscalls, rather than polling. This should\nensure fairer scheduling.\n\nOn Windows, we now use named mutexes.\n\nOn Linux and MacOS, we use blocking flock.\nDue to the way signals work in Go we cannot\ninterrupt a flock syscall, so instead we\nallow the syscall to complete and then release\nthe lock if nothing is waiting for it. To\navoid an unbounded growth of goroutines\nmaking flock syscalls, we ensure that only\none goroutine is making a call at a time.\n\nFor compatibility with older implementations,\nthe Linux implementation also acquires an\nabstract domain socket. On Windows, we do\nthe same with a named semaphore.","distinct":true,"url":"https://api.github.com/repos/axw/juju-mutex/commits/0bf7adf2c6b764a6010f014940b3021ad9f991da"}]}
{"actor":{"display_login":"axw"}}