X-Git-Url: https://git.sur5r.net/?p=i3%2Fi3;a=blobdiff_plain;f=src%2Flog.c;h=916085f456a8d8c1a95dbfca8c13d3d5b038db12;hp=e8a08b53741caa574fbaec8762ccb35655e0cdf9;hb=HEAD;hpb=988cc3ccaf59a0c25d9df47337bb9bd8826f6b31 diff --git a/src/log.c b/src/log.c index e8a08b53..916085f4 100644 --- a/src/log.c +++ b/src/log.c @@ -1,5 +1,3 @@ -#undef I3__FILE__ -#define I3__FILE__ "log.c" /* * vim:ts=4:sw=4:expandtab * @@ -9,6 +7,8 @@ * log.c: Logging functions. * */ +#include + #include #include #include @@ -20,7 +20,9 @@ #include #include #include +#if !defined(__OpenBSD__) #include +#endif #include "util.h" #include "log.h" @@ -86,8 +88,13 @@ void init_logging(void) { fprintf(stderr, "Could not initialize errorlog\n"); else { errorfile = fopen(errorfilename, "w"); - if (fcntl(fileno(errorfile), F_SETFD, FD_CLOEXEC)) { - fprintf(stderr, "Could not set close-on-exec flag\n"); + if (!errorfile) { + fprintf(stderr, "Could not initialize errorlog on %s: %s\n", + errorfilename, strerror(errno)); + } else { + if (fcntl(fileno(errorfile), F_SETFD, FD_CLOEXEC)) { + fprintf(stderr, "Could not set close-on-exec flag\n"); + } } } } @@ -157,11 +164,13 @@ void open_logbuffer(void) { header = (i3_shmlog_header *)logbuffer; +#if !defined(__OpenBSD__) pthread_condattr_t cond_attr; pthread_condattr_init(&cond_attr); if (pthread_condattr_setpshared(&cond_attr, PTHREAD_PROCESS_SHARED) != 0) fprintf(stderr, "pthread_condattr_setpshared() failed, i3-dump-log -f will not work!\n"); pthread_cond_init(&(header->condvar), &cond_attr); +#endif logwalk = logbuffer + sizeof(i3_shmlog_header); loglastwrap = logbuffer + logbuffer_size; @@ -277,8 +286,10 @@ static void vlog(const bool print, const char *fmt, va_list args) { store_log_markers(); +#if !defined(__OpenBSD__) /* Wake up all (i3-dump-log) processes waiting for condvar. */ pthread_cond_broadcast(&(header->condvar)); +#endif if (print) fwrite(message, len, 1, stdout);