`consume()` needs to set the `state` back to `Normal` instead of relying on its caller to do so. Right now, `flush()` calls `consume()` but doesn't modify `state`, which will behave incorrectly.