Fix Windows emulation of kill(pid, 0). This will now succeed, but only
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 27 Aug 2004 18:31:48 +0000 (18:31 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 27 Aug 2004 18:31:48 +0000 (18:31 +0000)
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.

src/backend/port/win32/signal.c
src/port/kill.c

index a5cc25611236ce2f2a87ecc87a301399eac552c2..abde0ede3d9d9dcfd272c19dd8205ed132d6bd4c 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  *
  * 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)
 void
 pg_queue_signal(int signum)
 {
-   if (signum >= PG_SIGNAL_COUNT || signum < 0)
+   if (signum >= PG_SIGNAL_COUNT || signum <= 0)
        return;
 
    EnterCriticalSection(&pg_signal_crit_sec);
index ebd07d95e6cb23bdf062976e3406563abeae4a69..3ef2314f20a5ee4d4b94533b5c0d23e2c243e809 100644 (file)
@@ -9,7 +9,7 @@
  * signals that the backend can recognize.
  *
  * 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)
    BYTE        sigRet = 0;
    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;
        return -1;