This is inconsistent with the `flush` logic of `write` - if we flush there we should probably flush here too.