mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
Remove now unnecessary loop around CallNamedPipe().
Radu Ilie
This commit is contained in:
parent
04a4413c2a
commit
f27a4696f1
@ -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)
|
|||||||
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)
|
|||||||
}
|
}
|
||||||
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)
|
||||||
|
Loading…
Reference in New Issue
Block a user