Re: FileWriter behavior between writes

2010-08-18 Thread Tab Atkins Jr.
On Wed, Aug 18, 2010 at 7:30 PM, Jonas Sicking  wrote:
> How is this noticeable from a webpage? I.e. why does the spec need to
> say anything one way or another?

> On Wednesday, August 18, 2010, Eric Uhrhane  wrote:
>> For
>> example, what if script A has a FileWriter for "/foo.txt" and script B
>> [using the FileSystem api] moves it elsewhere?  If the file is closed,
>> the next write from A may act as if the file was never there.  If the
>> file stayed open, on some systems the write would succeed, but the
>> data would land at the file's new location.
>>
>> Similar issues come up when files are opened for reading, then written
>> from another script, written from multiple scripts, etc.

~TJ



Re: FileWriter behavior between writes

2010-08-18 Thread Jonas Sicking
On Wednesday, August 18, 2010, Eric Uhrhane  wrote:
> This just came up during implementation discussions, so I wanted to
> share it with the list.
>
> The behavior of FileWriter in between writes isn't currently
> specified.  We haven't said anything about when the underlying file is
> opened or closed.  Does FileWriter.write() always do an
> open-write-close, with the JS object effectively holding only a path
> and offset, or could the implementation choose to keep the file open,
> and have the effective offset come from the underlying file pointer?
>
> My take: we should act as if we're always doing an open-write-close,
> for maximum portability.  I believe that different operating systems
> and file systems are likely to have varying behavior when there are
> multiple simultaneous callers opening files at the same time.  For
> example, what if script A has a FileWriter for "/foo.txt" and script B
> [using the FileSystem api] moves it elsewhere?  If the file is closed,
> the next write from A may act as if the file was never there.  If the
> file stayed open, on some systems the write would succeed, but the
> data would land at the file's new location.
>
> Similar issues come up when files are opened for reading, then written
> from another script, written from multiple scripts, etc.
>
> Specifying that each FileWriter.write() should be indistinguishable
> from an open-write-close wouldn't remove all platform-specific
> behavior, but it would certainly reduce the number of problem cases.
>
> Any thoughts?

How is this noticeable from a webpage? I.e. why does the spec need to
say anything one way or another?

/ Jonas



FileWriter behavior between writes

2010-08-18 Thread Eric Uhrhane
This just came up during implementation discussions, so I wanted to
share it with the list.

The behavior of FileWriter in between writes isn't currently
specified.  We haven't said anything about when the underlying file is
opened or closed.  Does FileWriter.write() always do an
open-write-close, with the JS object effectively holding only a path
and offset, or could the implementation choose to keep the file open,
and have the effective offset come from the underlying file pointer?

My take: we should act as if we're always doing an open-write-close,
for maximum portability.  I believe that different operating systems
and file systems are likely to have varying behavior when there are
multiple simultaneous callers opening files at the same time.  For
example, what if script A has a FileWriter for "/foo.txt" and script B
[using the FileSystem api] moves it elsewhere?  If the file is closed,
the next write from A may act as if the file was never there.  If the
file stayed open, on some systems the write would succeed, but the
data would land at the file's new location.

Similar issues come up when files are opened for reading, then written
from another script, written from multiple scripts, etc.

Specifying that each FileWriter.write() should be indistinguishable
from an open-write-close wouldn't remove all platform-specific
behavior, but it would certainly reduce the number of problem cases.

Any thoughts?

Thanks,

  Eric Uhrhane
  er...@google.com