Skip to content
Snippets Groups Projects
Commit 3e3f70a2 authored by Tom Lane's avatar Tom Lane
Browse files

Fix Windows emulation of kill(pid, 0). This will now succeed, but only

if the target PID is a PG postmaster or backend --- for our purposes that
is actually better than the Unix behavior.  Per Dave Page and Andrew Dunstan.
parent 1785aceb
No related branches found
No related tags found
No related merge requests found
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/port/win32/signal.c,v 1.4 2004/06/24 21:02:42 tgl Exp $ * $PostgreSQL: pgsql/src/backend/port/win32/signal.c,v 1.5 2004/08/27 18:31:48 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -162,7 +162,7 @@ pqsignal(int signum, pqsigfunc handler) ...@@ -162,7 +162,7 @@ pqsignal(int signum, pqsigfunc handler)
void void
pg_queue_signal(int signum) pg_queue_signal(int signum)
{ {
if (signum >= PG_SIGNAL_COUNT || signum < 0) if (signum >= PG_SIGNAL_COUNT || signum <= 0)
return; return;
EnterCriticalSection(&pg_signal_crit_sec); EnterCriticalSection(&pg_signal_crit_sec);
......
...@@ -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.2 2004/06/24 18:53:48 tgl Exp $ * $PostgreSQL: pgsql/src/port/kill.c,v 1.3 2004/08/27 18:31:48 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -26,7 +26,8 @@ pgkill(int pid, int sig) ...@@ -26,7 +26,8 @@ pgkill(int pid, int sig)
BYTE sigRet = 0; BYTE sigRet = 0;
DWORD bytes; DWORD bytes;
if (sig >= PG_SIGNAL_COUNT || sig <= 0) /* we allow signal 0 here, but it will be ignored in pg_queue_signal */
if (sig >= PG_SIGNAL_COUNT || sig < 0)
{ {
errno = EINVAL; errno = EINVAL;
return -1; return -1;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment