From 5b7e1d8ef0e9b0409c10fbe54d5e12ae8f7735fe Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 23 Jan 2018 19:06:21 +0100 Subject: [PATCH 1/3] man: document explicitly that sd_journal_stream_fd() never shares fds Also, clarify that O_NONBLOCK is turned off and that the fd is only half-open. --- man/sd_journal_stream_fd.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/man/sd_journal_stream_fd.xml b/man/sd_journal_stream_fd.xml index b9da483713..abd4a91c15 100644 --- a/man/sd_journal_stream_fd.xml +++ b/man/sd_journal_stream_fd.xml @@ -94,6 +94,10 @@ It is recommended that applications log UTF-8 messages only with this API, but this is not enforced. + + Each invocation of sd_journal_stream_fd() allocates a new log stream file descriptor, + that is not shared with prior or later invocations. The file descriptor is write-only (its reading direction is + shut down), and O_NONBLOCK is turned off initially. From efb8fd6e7596e675d49e568a4dd00e6efc2e5b9b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 23 Jan 2018 19:07:06 +0100 Subject: [PATCH 2/3] journal: cast to (void) where we knowingly ignore syscall returns --- src/journal/journal-send.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c index b322127a4e..73329ba024 100644 --- a/src/journal/journal-send.c +++ b/src/journal/journal-send.c @@ -416,7 +416,7 @@ _public_ int sd_journal_stream_fd(const char *identifier, int priority, int leve if (shutdown(fd, SHUT_RD) < 0) return -errno; - fd_inc_sndbuf(fd, SNDBUF_SIZE); + (void) fd_inc_sndbuf(fd, SNDBUF_SIZE); identifier = strempty(identifier); From 2695b872bd805c976990a04fd0924a29c3a9f6ef Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 23 Jan 2018 19:09:54 +0100 Subject: [PATCH 3/3] man: it appears the description of async signal safety has its own man page now Let's refer to the new page. --- man/sd_journal_get_fd.xml | 12 ++++++------ man/sd_journal_print.xml | 4 ++-- man/sd_journal_stream_fd.xml | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/man/sd_journal_get_fd.xml b/man/sd_journal_get_fd.xml index 24ececd9cb..b15fc1728c 100644 --- a/man/sd_journal_get_fd.xml +++ b/man/sd_journal_get_fd.xml @@ -233,12 +233,12 @@ else { Signal safety - In general, sd_journal_get_fd(), - sd_journal_get_events(), and sd_journal_get_timeout() - are not "async signal safe" in the meaning of - signal7. - Nevertheless, only the first call to any of those three functions performs unsafe operations, so - subsequent calls are safe. + In general, sd_journal_get_fd(), sd_journal_get_events(), and + sd_journal_get_timeout() are not "async signal safe" in the meaning of + signal-safety7. + Nevertheless, only the first call to any of those three functions performs unsafe operations, so subsequent calls + are safe. sd_journal_process() and sd_journal_wait() are not safe. sd_journal_reliable_fd() is safe. diff --git a/man/sd_journal_print.xml b/man/sd_journal_print.xml index f771ba307f..038d3bbbd4 100644 --- a/man/sd_journal_print.xml +++ b/man/sd_journal_print.xml @@ -205,8 +205,8 @@ sd_journal_send("MESSAGE=Hello World, this is PID %lu!", (unsigned long) getpid( Thread safety All functions listed here are thread-safe and may be called in parallel from multiple threads. - sd_journal_sendv() is "async signal safe" in the meaning of - signal7. + sd_journal_sendv() is "async signal safe" in the meaning of signal-safety7. sd_journal_print, diff --git a/man/sd_journal_stream_fd.xml b/man/sd_journal_stream_fd.xml index abd4a91c15..13972aea7c 100644 --- a/man/sd_journal_stream_fd.xml +++ b/man/sd_journal_stream_fd.xml @@ -110,8 +110,8 @@ Signal safety - sd_journal_stream_fd() is "async signal safe" in the meaning of - signal7. + sd_journal_stream_fd() is "async signal safe" in the meaning of signal-safety7.