Commit f27a4696 authored by Magnus Hagander's avatar Magnus Hagander

Remove now unnecessary loop around CallNamedPipe().

Radu Ilie
parent 04a4413c
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* signals that the backend can recognize. * signals that the backend can recognize.
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/port/kill.c,v 1.13 2010/01/02 16:58:13 momjian Exp $ * $PostgreSQL: pgsql/src/port/kill.c,v 1.14 2010/01/31 17:18:28 mha Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -25,7 +25,6 @@ pgkill(int pid, int sig) ...@@ -25,7 +25,6 @@ pgkill(int pid, int sig)
BYTE sigData = sig; BYTE sigData = sig;
BYTE sigRet = 0; BYTE sigRet = 0;
DWORD bytes; DWORD bytes;
int pipe_tries;
/* we allow signal 0 here, but it will be ignored in pg_queue_signal */ /* we allow signal 0 here, but it will be ignored in pg_queue_signal */
if (sig >= PG_SIGNAL_COUNT || sig < 0) if (sig >= PG_SIGNAL_COUNT || sig < 0)
...@@ -41,23 +40,14 @@ pgkill(int pid, int sig) ...@@ -41,23 +40,14 @@ pgkill(int pid, int sig)
} }
snprintf(pipename, sizeof(pipename), "\\\\.\\pipe\\pgsignal_%u", pid); snprintf(pipename, sizeof(pipename), "\\\\.\\pipe\\pgsignal_%u", pid);
/* if (CallNamedPipe(pipename, &sigData, 1, &sigRet, 1, &bytes, 1000))
* 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 (bytes != 1 || sigRet != sig)
{ {
if (bytes != 1 || sigRet != sig) errno = ESRCH;
{ return -1;
errno = ESRCH;
return -1;
}
return 0;
} }
return 0;
} }
if (GetLastError() == ERROR_FILE_NOT_FOUND) if (GetLastError() == ERROR_FILE_NOT_FOUND)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment