diff --git a/src/port/kill.c b/src/port/kill.c index bb2ff85bb3..c1a639330b 100644 --- a/src/port/kill.c +++ b/src/port/kill.c @@ -9,7 +9,7 @@ * signals that the backend can recognize. * * 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) 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)