Re: Clean up some signal usage mainly related to Windows

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Tristan Partin <tristan@neon.tech>
Cc: pgsql-hackers@postgresql.org
Date: 2023-12-04T15:22:31Z
Lists: pgsql-hackers
On 01.12.23 23:10, Tristan Partin wrote:
> On Wed Jul 12, 2023 at 9:35 AM CDT, Tristan Partin wrote:
>> On Wed Jul 12, 2023 at 9:31 AM CDT, Peter Eisentraut wrote:
>> > On 12.07.23 16:23, Tristan Partin wrote:
>> > > It has come to my attention that STDOUT_FILENO might not be 
>> portable and
>> > > fileno(3) isn't marked as signal-safe, so I have just used the raw 
>> 1 for
>> > > stdout, which as far as I know is portable.
>> >
>> > We do use STDOUT_FILENO elsewhere in the code, and there are even > 
>> workaround definitions for Windows, so it appears it is meant to be used.
>>
>> v3 is back to the original patch with newline being printed. Thanks.
> 
> Peter, did you have anything more to say about patch 1 in this series?

I think that patch is correct.  However, I wonder whether we even need 
that signal handler.  We could just delete the file immediately after 
opening it; then we don't need to worry about deleting it later.  On 
Windows, we could use O_TEMPORARY instead.

> Thinking about patch 2 more, not sure it should be considered until I 
> setup a Windows VM to do some testing, or unless some benevolent Windows 
> user wants to look at it and test it.

Yeah, that should probably be tested interactively by someone.



Commits

  1. Suppress -Wunused-result warning about write().

  2. Use signal-safe functions in signal handler