]> granicus.if.org Git - postgresql/blobdiff - src/port/kill.c
Centralize single quote escaping in src/port/quotes.c
[postgresql] / src / port / kill.c
index 1ec5ee5b78391611b6a41f14f9dc202e2c53d315..0a810cd22528ab2680d14173069f0adb1820e6a1 100644 (file)
@@ -3,13 +3,13 @@
  * kill.c
  *       kill()
  *
- * Copyright (c) 1996-2009, PostgreSQL Global Development Group
+ * Copyright (c) 1996-2013, PostgreSQL Global Development Group
  *
  *     This is a replacement version of kill for Win32 which sends
  *     signals that the backend can recognize.
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/port/kill.c,v 1.12 2009/02/15 13:58:18 mha Exp $
+ *       src/port/kill.c
  *
  *-------------------------------------------------------------------------
  */
@@ -25,7 +25,6 @@ pgkill(int pid, int sig)
        BYTE            sigData = sig;
        BYTE            sigRet = 0;
        DWORD           bytes;
-       int                     pipe_tries;
 
        /* we allow signal 0 here, but it will be ignored in pg_queue_signal */
        if (sig >= PG_SIGNAL_COUNT || sig < 0)
@@ -41,23 +40,14 @@ pgkill(int pid, int sig)
        }
        snprintf(pipename, sizeof(pipename), "\\\\.\\pipe\\pgsignal_%u", pid);
 
-       /*
-        * Writing data to the named pipe can fail for transient reasons.
-        * Therefore, it is useful to retry if it fails.  The maximum number of
-        * calls to make was empirically determined from a 90-hour notification
-        * stress test.
-        */
-       for (pipe_tries = 0; pipe_tries < 3; pipe_tries++)
+       if (CallNamedPipe(pipename, &sigData, 1, &sigRet, 1, &bytes, 1000))
        {
-               if (CallNamedPipe(pipename, &sigData, 1, &sigRet, 1, &bytes, 1000))
+               if (bytes != 1 || sigRet != sig)
                {
-                       if (bytes != 1 || sigRet != sig)
-                       {
-                               errno = ESRCH;
-                               return -1;
-                       }
-                       return 0;
+                       errno = ESRCH;
+                       return -1;
                }
+               return 0;
        }
 
        if (GetLastError() == ERROR_FILE_NOT_FOUND)