[Python-Dev] wait time [was: Ext4 data loss]

Jim Jewett jimjjewett at gmail.com
Thu Mar 12 22:01:27 CET 2009


On 3/12/09, "Martin v. Löwis" <martin at v.loewis.de> wrote:
>> It is starting to look as though flush (and close?) should take an
>> optional wait parameter, to indicate how much re-assurance you're
>> willing to wait for.

> Unfortunately, such a thing would be unimplementable on most of today's
> operating systems.

What am I missing?

_file=file
class file(_file): ...
    def flush(self, wait=0):
        super().flush(self)
        if wait < 0.25:
            return
        if wait < 0.5 and os.fdatasync:
            os.fdatasync(self.fileno())
            return
        os.fsync(self.fileno())
        if wait < 0.75:
            return
        if os.ffullsync:
            os.ffullsync(self.fileno())

(To be honest, I'm not even seeing why it couldn't be done in
Objects/fileobject.c, though I realize extension modules would need to
go through the python interface to take advantage of it.)

-jJ


More information about the Python-Dev mailing list