On Fri, Mar 12, 2010 at 8:13 PM, Magnus Hagander <magnus@hagander.net> wrote:
> On Wed, Mar 10, 2010 at 10:09, Fujii Masao <masao.fujii@gmail.com> wrote:
>> Hi,
>>
>> http://archives.postgresql.org/pgsql-hackers/2010-01/msg01672.php
>> On win32, the blocking libpq functions like PQconnectdb() and
>> PQexec() are uninterruptible since they use the vanilla select()
>> instead of our signal emulation layer compatible select().
>> Nevertheless, currently walreceiver uses them to establish a
>> connection, send a handshake message and wait for the reply.
>> So walreceiver also becomes uninterruptible for a while. This
>> is the must-fix problem for 9.0.
>>
>> I replaced the blocking libpq functions currently used with
>> asynchronous ones, and used the emulated version of select()
>> to wait, to make walreceiver interruptible. Here is the patch.
>
> These are issues that affect other things running libpq in the backend
> as well, right? Such as dblink?
Yes. So Heikki wrote the patch for dblink.
http://archives.postgresql.org/pgsql-hackers/2010-01/msg02072.php
> Perhaps we can factor out most of this
> into functions in backend/port/win32 so that we can re-use it fro
> there?
Sorry. I couldn't get your point. Could you explain it in detail?
Regards,
--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center