[Python-Dev] Re:coping with a missing fsync

Scott David Daniels Scott.Daniels at Acm.Org
Sun Sep 28 19:00:53 EDT 2003


After seeing:

>backup kept screwing up until FileStorage's
>
>            if fsync is not None: fsync(file.fileno())
>
>actually did something on Windows.
>
I suspect making the change where you obtain fsync, rather than where 
you call it
makes the code clearer.  Just after import os, you can do the 
appropriate bit of
the following code:

        try:
            fsync = os.fsync
        except AttributeError:
            fsync = lambda filenumber: None   # Unfortunately nothing to 
call
-------- or --------
        fsync = os.fsync or lambda filenumber: None # if we cannot sync, 
do nothing


This (at least to me) emphasizes the lack of a system facility.  The 
existing
code emphasizes local solutions on a case-by-case basis.  If the 
solution is
always to skip the call, I'd find this method clearer.

-Scott Daid Daniels
Scott.Daniels at Acm.Org





More information about the Python-Dev mailing list