NT-directories, because the sort.exe has to be take for cygnus, not
NT.
+---------------------------------------------------------------------------
+
+FIX FOR POSTGRESQL FREEZING ON NT MACHINES
+
+
+From: "Hiroshi Inoue"
+To: "Horak Daniel" , "'Tom Lane'"
+Subject: RE: [HACKERS] backend freezeing on win32 fixed (I hope ;-) )
+Date: Wed, 18 Aug 1999 08:45:28 +0900
+MIME-Version: 1.0
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Content-Transfer-Encoding: 7bit
+X-Priority: 3 (Normal)
+X-MSMail-Priority: Normal
+X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0
+X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4
+In-reply-to: <2E7F82FAC1FCD2118E1500A024B3BF907DED3F@exchange.mmp.plzen-city.cz>
+Importance: Normal
+Precedence: bulk
+Status: RO
+
+> -----Original Message-----
+> Sent: Tuesday, August 17, 1999 9:06 PM
+> To: 'Tom Lane'
+> Subject: RE: [HACKERS] backend freezeing on win32 fixed (I hope ;-) )
+
+library.
+
+We found that postmaster doesn't call exec() after fork() since v6.4.
+
+The value of static/extern variables which cygipc library holds may
+be different from their initial values when postmaster fork()s child
+backend processes.
+
+I made the following patch for cygipc library on trial.
+This patch was effective for Yutaka's test case.
+
+Regards.
+
+Hiroshi Inoue
+
+*** sem.c.orig Tue Dec 01 00:16:25 1998
+--- sem.c Tue Aug 17 13:22:06 1999
+***************
+*** 58,63 ****
+--- 58,78 ----
+ static int GFirstSem = 0; /*PCPC*/
+ static int GFdSem ; /*PCPC*/
+
++ static pid_t GProcessId = 0;
++
++ static void init_globals(void)
++ {
++ pid_t pid;
++
++ if (pid=getpid(), pid != GProcessId)
++ {
++ GFirstSem = 0;
++ used_sems = used_semids = max_semid = 0;
++ sem_seq = 0;
++ GProcessId = pid;
++ }
++ }
++
+ /************************************************************************/
+ /* Demande d'acces a la zone partagee de gestion des semaphores */
+ /************************************************************************/
+***************
+*** 77,82 ****
+--- 92,98 ----
+ {
+ int LRet ;
+
++ init_globals();
+ if( GFirstSem == 0 )
+ {
+ if( IsGSemSemExist() )
+*** shm.c.orig Tue Dec 01 01:04:57 1998
+--- shm.c Tue Aug 17 13:22:27 1999
+***************
+*** 59,64 ****
+--- 59,81 ----
+ static int GFirstShm = 0; /*PCPC*/
+ static int GFdShm ; /*PCPC*/
+
++ /*****************************************/
++ /* Initialization of static variables */
++ /*****************************************/
++ static pid_t GProcessId = 0;
++ static void init_globals(void)
++ {
++ pid_t pid;
++
++ if (pid=getpid(), pid != GProcessId)
++ {
++ GFirstShm = 0;
++ shm_rss = shm_swp = max_shmid = 0;
++ shm_seq = 0;
++ GProcessId = pid;
++ }
++ }
++
+ /************************************************************************/
+ /* Demande d'acces a la zone partagee de gestion des shm */
+ /************************************************************************/
+***************
+*** 82,87 ****
+--- 99,105 ----
+ {
+ int LRet ;
+
++ init_globals();
+ if( GFirstShm == 0 )
+ {
+ if( IsGSemShmExist() )
+*** msg.c.orig Tue Dec 01 00:16:09 1998
+--- msg.c Tue Aug 17 13:20:04 1999
+***************
+*** 57,62 ****
+--- 57,77 ----
+ static int GFirstMsg = 0; /*PCPC*/
+ static int GFdMsg ; /*PCPC*/
+
++ /*****************************************/
++ /* Initialization of static variables */
++ /*****************************************/
++ static pid_t GProcessId = 0;
++ static void init_globals(void)
++ {
++ pid_t pid;
++
++ if (pid=getpid(), pid != GProcessId)
++ {
++ GFirstMsg = 0;
++ msgbytes = msghdrs = msg_seq = used_queues = max_msqid = 0;
++ GProcessId = pid;
++ }
++ }
+ /************************************************************************/
+ /* Demande d'acces a la zone partagee de gestion des semaphores */
+ /************************************************************************/
+***************
+*** 79,84 ****
+--- 94,100 ----
+ {
+ int LRet ;
+
++ init_globals();
+ if( GFirstMsg == 0 )
+ {
+ if( IsGSemMsgExist() )
+
+
+
+