[PATCH v2 03/14] Save log file file descriptor for signal context logging
Chase Douglas
chase.douglas at canonical.com
Mon Apr 9 11:17:29 PDT 2012
None of the FILE based functions are signal safe, including fileno(), so
we need to save the file descriptor for when we are in signal context.
Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
---
os/log.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/os/log.c b/os/log.c
index 061b3dd..cd924a3 100644
--- a/os/log.c
+++ b/os/log.c
@@ -108,6 +108,7 @@ void (*OsVendorVErrorFProc) (const char *, va_list args) = NULL;
#endif
static FILE *logFile = NULL;
+static int logFileFd = -1;
static Bool logFlush = FALSE;
static Bool logSync = FALSE;
static int logVerbosity = DEFAULT_LOG_VERBOSITY;
@@ -211,6 +212,8 @@ LogInit(const char *fname, const char *backup)
FatalError("Cannot open log file \"%s\"\n", logFileName);
setvbuf(logFile, NULL, _IONBF, 0);
+ logFileFd = fileno(logFile);
+
/* Flush saved log information. */
if (saveBuffer && bufferSize > 0) {
fwrite(saveBuffer, bufferPos, 1, logFile);
@@ -243,6 +246,7 @@ LogClose(enum ExitCode error)
(error == EXIT_NO_ERROR) ? "successfully" : "with error", error);
fclose(logFile);
logFile = NULL;
+ logFileFd = -1;
}
}
--
1.7.9.1
More information about the xorg-devel
mailing list