walreceiver is uninterruptible on win32

From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: walreceiver is uninterruptible on win32
Date: 2010-03-10 09:09:57
Message-ID: 3f0b79eb1003100109u4e5131c1hc26c1db709ab3418@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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.

Regards,

--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

Attachment Content-Type Size
win32_interruptible_walreceiver_v1.patch text/x-patch 10.3 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kevin Flanagan 2010-03-10 09:28:40 Re: Access violation from palloc, Visual Studio 2005, C-language function
Previous Message Pavel Stehule 2010-03-10 07:39:00 Re: patch (for 9.1) string functions