Suppress -Wunused-result warnings about write(), again.

Adopt the same solution as in commit aa90e148ca, but this time
let's put the ugliness inside the write_stderr() macro, instead of
expecting each call site to deal with it.  Back-port that decision
into psql/common.c where I got the macro from in the first place.

Per gripe from Peter Eisentraut.
This commit is contained in:
Tom Lane 2016-06-03 11:29:20 -04:00
parent e1623c3959
commit 6c72a28e5c
2 changed files with 27 additions and 13 deletions

View File

@ -137,8 +137,18 @@ static volatile DumpSignalInformation signal_info;
static CRITICAL_SECTION signal_info_lock;
#endif
/* Used from signal handlers, no buffering */
#define write_stderr(str) write(fileno(stderr), str, strlen(str))
/*
* Write a simple string to stderr --- must be safe in a signal handler.
* We ignore the write() result since there's not much we could do about it.
* Certain compilers make that harder than it ought to be.
*/
#define write_stderr(str) \
do { \
const char *str_ = (str); \
int rc_; \
rc_ = write(fileno(stderr), str_, strlen(str_)); \
(void) rc_; \
} while (0)
#ifdef WIN32

View File

@ -235,8 +235,18 @@ static PGcancel *volatile cancelConn = NULL;
static CRITICAL_SECTION cancelConnLock;
#endif
/* Used from signal handlers, no buffering */
#define write_stderr(str) write(fileno(stderr), str, strlen(str))
/*
* Write a simple string to stderr --- must be safe in a signal handler.
* We ignore the write() result since there's not much we could do about it.
* Certain compilers make that harder than it ought to be.
*/
#define write_stderr(str) \
do { \
const char *str_ = (str); \
int rc_; \
rc_ = write(fileno(stderr), str_, strlen(str_)); \
(void) rc_; \
} while (0)
#ifndef WIN32
@ -245,7 +255,6 @@ static void
handle_sigint(SIGNAL_ARGS)
{
int save_errno = errno;
int rc;
char errbuf[256];
/* if we are waiting for input, longjmp out of it */
@ -262,16 +271,11 @@ handle_sigint(SIGNAL_ARGS)
if (cancelConn != NULL)
{
if (PQcancel(cancelConn, errbuf, sizeof(errbuf)))
{
rc = write_stderr("Cancel request sent\n");
(void) rc; /* ignore errors, nothing we can do here */
}
write_stderr("Cancel request sent\n");
else
{
rc = write_stderr("Could not send cancel request: ");
(void) rc; /* ignore errors, nothing we can do here */
rc = write_stderr(errbuf);
(void) rc; /* ignore errors, nothing we can do here */
write_stderr("Could not send cancel request: ");
write_stderr(errbuf);
}
}