Handle read deadlocks

Updated to latest upstream, reverted our last bug fix that is now unnecessary and add some handling for deadlocks when server and worker are both trying to read