{"push_id":805100423,"size":1,"distinct_size":1,"ref":"refs/heads/j/pause-race-condition","head":"c2b6c46ab641e58df4ae5eba4aefcdf8a7b946c4","before":"3ee86212655ff4b3eff61731e5e706ce7437690f","commits":[{"sha":"c2b6c46ab641e58df4ae5eba4aefcdf8a7b946c4","author":{"email":"dabc572a42347a930fd039cd9bd44c49f94f3c94@zignar.net","name":"Mathias Fussenegger"},"message":"fix pause/resume race condition in TopRowUpstream\n\nThe resume operation could become a noop if it happened\nafter pause() and while shouldPause()/pauseProcessed was\nbeing executed in another thread.\n\nE.g.\n\n    T1                          |     T2\n--------------------------------|----------------\n                                | requests pause\n resume                         | shouldPause returns true\n sets pendingPause to false     |\n                                | pauseProcessed becomes a noop\n resume becomes noop            |","distinct":true,"url":"https://api.github.com/repos/crate/crate/commits/c2b6c46ab641e58df4ae5eba4aefcdf8a7b946c4"}]}