git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 04a4413)
Remove now unnecessary loop around CallNamedPipe().
2010年1月31日 17:18:28 +0000 (17:18 +0000)
2010年1月31日 17:18:28 +0000 (17:18 +0000)
Radu Ilie


diff --git a/src/port/kill.c b/src/port/kill.c
index bb2ff85bb39b0005d6ad9fc8de80ac08597d828e..c1a639330baa39e75970f94c2ff0451adb9c1f83 100644 (file)
--- 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)
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /