On Tue, Oct 9, 2018 at 4:04 PM Peter Eisentraut <
peter.eisentr...@2ndquadrant.com> wrote:

> On 01/10/2018 14:00, Chris Travers wrote:
> >
> >
> > On Wed, Sep 26, 2018 at 9:54 AM Chris Travers <chris.trav...@adjust.com
> > <mailto:chris.trav...@adjust.com>> wrote:
> >
> >
> >
> >     On Tue, Sep 25, 2018 at 3:23 PM Tom Lane <t...@sss.pgh.pa.us
> >     <mailto:t...@sss.pgh.pa.us>> wrote:
> >
> >         Chris Travers <chris.trav...@adjust.com
> >         <mailto:chris.trav...@adjust.com>> writes:
> >         > However,  what I think one could do is use a struct of volatile
> >         > sig_atomic_t members and macros for checking/setting.  Simply
> >         writing a
> >         > value is safe in C89 and higher.
> >
> >         Yeah, we could group those flags in a struct, but what's the
> point?

>
> >
> >     This was one of two things I noticed in my previous patch on
> >     interrupts and loops where I wasn't sure what the best practice in
> >     our code is.
> >
> >     If we don't want to make this change, then would there be any
> >     objection to me writing up a README describing the flags, and best
> >     practices in terms of checking them in our code based on the current
> >     places we use them?  If the current approach will be unlikely to
> >     change in the future, then at least we can document that the way I
> >     went about things is consistent with current best practices so next
> >     time someone doesn't really wonder.
> >
> >
> > Attaching a first draft of a readme.  Feedback welcome.  I noticed
> > further that we used to document signals and what they did with carious
> > processes but that this was removed after 7.0, probably due to
> > complexity reasons.
>
> diff --git a/src/backend/utils/init/README b/src/backend/utils/init/README
> new file mode 100644
> index 0000000000..0472687f53
> --- /dev/null
> +++ b/src/backend/utils/init/README
> @@ -0,0 +1,96 @@
> +src/backend/utils/misc/README
>
> Not only are the directory names mismatched here, but I wonder whether
> this file would be long in either of these directories.
>

I am open to suggestions here.  The file was put where the signal stuff
was.  Maybe moving it up and calling it signals.README?

>
> +Implementation Notes on Globals and Signal/Event Handling
> +=========================================================
> +
> +The approch to signal handling in PostgreSQL is designed to strictly
> conform
> +with the C89 standard and designed to run with as few platform
> assumptions as
> +possible.
>
> We use C99 now, so why would be design this to be conforming to C89?
>

Can or worms alert:  C89 and C99 are functionally the same here.  C99
changed the spec in part because every known C89 implementation was
compliant in this area with the C99 spec.

I am fine with bumping that up to C99.

>
>
> More generally, I'd like this material to be code comments.  It's the
> kind of stuff that gets outdated before long if it's kept separate.
>

The problem is that code comments are not going to be good places to
document "how do I check for pending actions?"  That could be moved to the
main SGML I guess.....

>
> --
> Peter Eisentraut              http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>


-- 
Best Regards,
Chris Travers
Head of Database

Tel: +49 162 9037 210 | Skype: einhverfr | www.adjust.com
Saarbrücker Straße 37a, 10405 Berlin

Reply via email to