Benjamin Goldberg <[EMAIL PROTECTED]> writes:

> "JüRgen BöMmels" wrote:
> [snip]
> >  void
> >  PIO_unix_flush(theINTERP, ParrotIOLayer *layer, ParrotIO *io)
> >  {
> > -#  if 0
> >      fsync(io->fd);
> > -#  endif
> >  }
> 
> AFAIK, for disk files, fsync has (should have) no visible effect from
> the point of view of any user program -- all it does is tell the OS to
> start writing the OS-level cache for that handle to disk, and it blocks
> until all is copied.  

I think this is correct.

> So... it is a slow system call, with no visible
> effect -- why do we do it?

Deepends on the semantics we want to have for flush. I thought of
flush to disk, but just flush to OS is also a valid asumption. This is
what fflush also does.

> It's possible that fsync()ing will sometimes be desired, but, IMHO, I
> don't think that it should be done by flush -- I'd rather it be done by
> an explicit call to sychronized the handle with the disk.

Maybe another API-Function "Sync" should be added. Not sure.

bye
boe

Reply via email to