Re: Obsolete coding in fork_process.c

From: Noah Misch <noah(at)leadboat(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: Obsolete coding in fork_process.c
Date: 2014-05-01 18:32:31
Message-ID: 20140501183231.GA1190179@tornado.leadboat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, May 01, 2014 at 12:13:28PM -0400, Tom Lane wrote:
> fork_process.c quoth:
>
> /*
> * Flush stdio channels just before fork, to avoid double-output problems.
> * Ideally we'd use fflush(NULL) here, but there are still a few non-ANSI
> * stdio libraries out there (like SunOS 4.1.x) that coredump if we do.
> * Presently stdout and stderr are the only stdio output channels used by
> * the postmaster, so fflush'ing them should be sufficient.
> */
> fflush(stdout);
> fflush(stderr);
>
> Is there any reason not to change this to just fflush(NULL)? We dropped
> support for SunOS 4.1 quite some time ago ...

Modern systems have other fflush(NULL) problems:

http://www.nntp.perl.org/group/perl.perl5.porters/2013/09/msg207692.html
http://perl5.git.perl.org/metaconfig.git/blob/master:/U/perl/fflushall.U

--
Noah Misch
EnterpriseDB http://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2014-05-01 18:48:00 Re: quiet inline configure check misses a step for clang
Previous Message Tom Lane 2014-05-01 16:13:28 Obsolete coding in fork_process.c