Re: CommitFest 2009-07: Yay, Kevin! Thanks, reviewers!

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Greg Smith <greg(at)2ndquadrant(dot)com>, Kevin Grittner <Kevin(dot)Grittner(at)wicourts(dot)gov>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: CommitFest 2009-07: Yay, Kevin! Thanks, reviewers!
Date: 2010-08-19 16:23:23
Message-ID: 4C6D5A7B.4050609@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 19/08/10 16:38, Tom Lane wrote:
> Heikki Linnakangas<heikki(dot)linnakangas(at)enterprisedb(dot)com> writes:
>> BTW, on what platforms signals don't interrupt sleep? Although that
>> issue has been discussed many times before, I couldn't find any
>> reference to a real platform in the archives.
>
> I've got one in captivity (my old HPUX box). Happy to test whatever you
> come up with.
>
> Considering that pg_usleep is implemented with select, I'm not following
> what you mean by "replace pg_usleep() with select()"?

Instead of using pg_usleep(), call select() directly, waiting not only
for the timeout, but also for data to arrive on the "self-pipe". The
signal handler writes a byte to the self-pipe, waking up the select().
That way the select() is interupted by the signal arriving, even if
signals per se don't interrupt it. And it closes the race condition
involved with setting a flag in the signal handler and checking that in
the main loop.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2010-08-19 16:49:45 Re: wip: functions median and percentile
Previous Message Heikki Linnakangas 2010-08-19 16:16:42 Re: CommitFest 2009-07: Yay, Kevin! Thanks, reviewers!