Apply volume changes - fixes 368

Fixes #368.
In theory they can be parallel. In practice, they can't because pushes are blocking, and if you did pushes and waits "in parallel" you might deadlock if A is waiting for push from B and B is concurrently waiting for push from A. Or, hm. Maybe it wouldn't deadlock? Because wait isn't blocking.

So let me revise my statement to "I'm too sleep deprived to figure out if parallelism is OK" and leave it at that :grin: