Actually, it seems I forgot to attach the actual patch *again*. Sheesh.
Here goes.
//Magnus
>Here's the new one. Turns out I had already fixed the one part
>I thought
>I still had, so it was already ready.
>
>Changes since last patch:
>
>1) Error messages in pgwin32_signal_initialize() are now all using
>ereport(). (Previously used fprintf to stderr, but I realised that this
>function executes on the main thread and can thus use ereport). The
>error for SetConsoleCtrlHandler() is now FATAL, per suggestion from
>Claudio.
>
>2) Redefines CHECK_FOR_INTERRUPTS() on Win32 only, to include a call to
>WaitForSingleObjectEx(). This allows our signals to be delivered just
>before we check for their result. WIth this change, query cancel now
>works fine on win32. It's also possible to do an "administrator
>shutdown" on a backend that is running a query (previously
>only possible
>when the backend was idle)
>
>
>The rest is identical to patch _4.
>
>//Magnus
>
>---------------------------(end of
>broadcast)---------------------------
>TIP 1: subscribe and unsubscribe commands go to
>majordomo@postgresql.org
>