On 09/26/2015 02:48 AM, Julien Danjou wrote:
On Tue, Sep 22 2015, Chris Friesen wrote:

On 09/22/2015 05:48 PM, Joshua Harlow wrote:
A present:

  >>> import contextlib
  >>> import os
  >>>
  >>> @contextlib.contextmanager
... def synced_file(path, mode='wb'):
...   with open(path, mode) as fh:
...      yield fh
...      os.fdatasync(fh.fileno())
...
  >>> with synced_file("/tmp/b.txt") as fh:
...    fh.write("b")

Isn't that missing an "fh.flush()" somewhere before the fdatasync()?

Unless proven otherwise, close() does a flush().

There's no close() before the fdatasync() in the above code. (And it wouldn't make sense anyway because you need the open fd to do the fdatasync().)

Chris


__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to