Andrew Chernow wrote:
Parts of AH need deep cloning, notably the formatData member, which
is done in _ReopenArchive().
Is it okay to clone this from within the thread?
I don't see why not.
The reopen() appears to mess with AH->FH, which mutltiple threads are
calling fclose on. The second thread is going to fail and the first
fclose() will close the main threads handle.
+ #ifndef WIN32
+ if (fclose(AH->FH) != 0)
+ die_horribly(AH, modulename, "could not close archive file:
%s\n",
+ strerror(errno));
+ #else
How are things failing? Core dump, maybe you are seeing the above
error? The non-windows path is safe from this because a) it never
does an fclose and b) its a fork and has its own copy of the FH.
No, as this fragment shows, fclose() is NOT called on Windows.
The program dies with a nasty dialog box when restoring a dump of the
regression database after the second COPY thread disconnects.
cheers
andrew
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers