Re: Signals on Win32 (was RE: [HACKERS] [PATCHES] fork/exec patch)

From: "Zeugswetter Andreas SB SD" <ZeugswetterA(at)spardat(dot)at>
To: "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com>
Cc: "pgsql-hackers-win32" <pgsql-hackers-win32(at)postgresql(dot)org>
Subject: Re: Signals on Win32 (was RE: [HACKERS] [PATCHES] fork/exec patch)
Date: 2003-12-19 10:00:47
Message-ID: 46C15C39FEB2C44BA555E356FBCD6FA496208E@m0114.s-mxs.net
Views: Raw Message | Whole Thread | Download mbox
Thread:
Lists: pgsql-hackers-win32


> > How about the typical answer on Windows ? Create an invisible Window
> > with an Event Handler and pass it a windows message ?
>
> The issue at hand is not how the signal is sent, but the behavior taken
> once it arrives. Using messages bypasses the thread problem but
> requires PeekMessage() to be put in various places to check if there is
> a signal waiting to be acted on, which is really any easier then
> SleepEx(0), although, it does bypass the threading issues.

I think that is not correct.

hWnd = CreateWindow ("STATIC", "", WS_POPUP, 0, 0, 0, 0,NULL,NULL,NULL,NULL);
ShowWindow (hWnd, SW_HIDE);
wpOrigProc = (WNDPROC) SetWindowLong(hWnd, GWL_WNDPROC, (LONG) pg_WinProc);

LRESULT APIENTRY pg_WinProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
MSG rMsg;

rMsg.message = uMsg;
rMsg.wParam = wParam;
rMsg.lParam = lParam;

// printf ("got message %d\n", rMsg.message);
switch (rMsg.message)
{
case PG_SIGNAL_KILL:
......
}

Andreas

Browse pgsql-hackers-win32 by date

  From Date Subject
Next Message Merlin Moncure 2003-12-19 13:44:45 Re: Signals on Win32 (was RE: [HACKERS] [PATCHES] fork/exec patch)
Previous Message Merlin Moncure 2003-12-18 19:05:57 Signals on Win32 (was RE: [HACKERS] [PATCHES] fork/exec patch)