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?

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.

--
Andrew Chernow
eSilo, LLC
every bit counts
http://www.esilo.com/

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to