Re: Support for QNX6, POSIX IPC and PTHREAD-style locking - Mailing list pgsql-patches

From Igor Kovalenko
Subject Re: Support for QNX6, POSIX IPC and PTHREAD-style locking
Date
Msg-id 1f0d01c175f0$891d1570$20e00518@c773082g
Whole thread Raw
In response to Re: Support for QNX6, POSIX IPC and PTHREAD-style locking  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: Support for QNX6, POSIX IPC and PTHREAD-style locking
List pgsql-patches
----- Original Message -----
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Igor Kovalenko" <Igor.Kovalenko@motorola.com>
Cc: <pgsql-patches@postgresql.org>
Sent: Sunday, November 25, 2001 12:08 PM
Subject: Re: [PATCHES] Support for QNX6, POSIX IPC and PTHREAD-style locking


> "Igor Kovalenko" <Igor.Kovalenko@motorola.com> writes:
> >> No, the point is that the Posix semaphore stuff is a major change to a
> >> critical and delicate part of Postgres.  It's too late in the 7.2 beta
> >> cycle for such a change to receive the review and testing it needs.
>
> > I have feeling we're talking different languages. Can someone explain me
how
> > does it need lot of review and testing if all changes are #ifdef-ed and
> > invisible to all currently supported platforms?
>
> It needs review and testing because we're not convinced that it's right.
> We're not interested in shipping a possibly-unreliable QNX6 port just to
> have a QNX6 port.

You're mixing issues related to QNX6 port per say and to Posix semaphores in
that statement. There is nothing more unreliable (even potentially) in QNX6
port than in some other platforms. Implementation of Posix semaphores could
be considered non-proven, but that's separate issue. I already sent separate
patch which deals only with QNX6 support (no Posix semaphores, no Pthread
locking). It works through sysV emulation and should not be considered any
less reliable than QNX4 port (emulation code was essentially inherited from
there). Apparently it is still awaiting approval to be distributed. Bruce
has copy though.

> Also, patches that introduce a bunch of #ifdefs into what had been
> non-system-specific code are disliked on general principles around this
> project: they make the code harder to read and less maintainable over
> the long run.  In that sense the patch is going in the wrong direction.
> There needs to be some work done on restructuring the existing code to
> preserve readability.

You can not avoid #ifdefs completely. At some point somewhere you're bound
to have them. Of course it is better to have them encapsulated on lower
level. I believe that's what I did, except for those in proc.c & spin.c but
I already explained why I did that. So I don't think the patch goes in wrong
direction, it just goes half-way due to [intentional] compromise.

It could be structured better, but only at the cost of making more changes.

> I do believe that it's a good idea to support Posix semaphores; that's
> been in the wind for awhile, and it's clear that QNX6 is not the only
> platform that would benefit.  We will take up this code, in some form,
> in 7.3.  But I don't think it's a wise idea to cram it into 7.2.
> 7.2 is already two months behind schedule, and I don't want to risk
> any more delays in this release cycle.
>
> > ... What I get for that is people refusing to
> > accept the patch without even reading it. That's really encouraging ...
>
> I *have* read it.  More than once.  I'm not saying you've done bad work.
> It's a great starting point, in fact.  But I don't want to apply it
> as-is, and I don't want to hold up 7.2 anymore in order to get QNX6
> support into 7.2.

Bruce said he'd accept patch without Posix semaphores. And I asked to vote
3-way (whole patch, qnx6-support-only or none). What you're saying appears
to be 'none' but you're not making it clear if that's 'no to whole patch',
'no to posix semaphores', 'no to qnx6-support-only patch' or 'no to
anything'.

My understanding at this point is, there should not be problem with applying
QNX6-support-only patch, as long as it works within existing framework and
does not introduce non-proven code anywhere. That's what new version of
patch is.

regards,
- igor



pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Chinese NLS patch, the third try.
Next
From: Bruce Momjian
Date:
Subject: Re: Support for QNX6, POSIX IPC and PTHREAD-style locking