mirror of
https://github.com/postgres/postgres.git
synced 2025-08-28 18:48:04 +03:00
Move pgkill out into /port so pg_ctl can use it on Win32.
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/port/win32/signal.c,v 1.1 2004/04/12 16:19:18 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/port/win32/signal.c,v 1.2 2004/05/27 13:08:50 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -152,46 +152,6 @@ pqsignal(int signum, pqsigfunc handler)
|
||||
return prevfunc;
|
||||
}
|
||||
|
||||
/* signal sending */
|
||||
int
|
||||
pqkill(int pid, int sig)
|
||||
{
|
||||
char pipename[128];
|
||||
BYTE sigData = sig;
|
||||
BYTE sigRet = 0;
|
||||
DWORD bytes;
|
||||
|
||||
if (sig >= PG_SIGNAL_COUNT || sig <= 0)
|
||||
{
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
if (pid <= 0)
|
||||
{
|
||||
/* No support for process groups */
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
wsprintf(pipename, "\\\\.\\pipe\\pgsignal_%i", pid);
|
||||
if (!CallNamedPipe(pipename, &sigData, 1, &sigRet, 1, &bytes, 1000))
|
||||
{
|
||||
if (GetLastError() == ERROR_FILE_NOT_FOUND)
|
||||
errno = ESRCH;
|
||||
else if (GetLastError() == ERROR_ACCESS_DENIED)
|
||||
errno = EPERM;
|
||||
else
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
if (bytes != 1 || sigRet != sig)
|
||||
{
|
||||
errno = ESRCH;
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* All functions below execute on the signal handler thread
|
||||
* and must be synchronized as such!
|
||||
|
Reference in New Issue
Block a user