> > The code 2 means ERROR_FILE_NOT_FOUND, "The system cannot find
> the
> > file specified." and the code 32 means ERROR_SHARING_VIOLATION,
> "The
> > process cannot access the file because it is being used by
> another process."
> 
> The first of those is probably normal operation --- we remove
> pg_internal.init whenever it is out-of-date.  The second is bad
> though.
> 
> > We use the tmpfile-and-rename trick on both pg_internal.init and
> pgstat.stat.
> > Are there any incompatible behavior in the trick between POSIX
> and Windows?
> 
> It looks to me like we have implemented Windows' FILE_SHARE_DELETE
> flag for open() calls but not for fopen().  Isn't this a problem?
> We do use
> fopen() for stuff like pgstat.stat.

That definitely sounds like a problem, there is no reason why the issue
shouldn't occur for fopen(). Do you want to work up a patch for that
based on open(), or do you want me to take a look at it?

//Magnus


---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to