From: Steinar H. Gunderson Date: Fri, 19 Apr 2013 18:48:35 +0000 (+0200) Subject: Fix 100% CPU usage when there is no access_log. X-Git-Tag: 1.0.0~65 X-Git-Url: https://git.sesse.net/?p=cubemap;a=commitdiff_plain;h=86eefc0af8cc96d1f63c2f7df697b24b1f4b607b Fix 100% CPU usage when there is no access_log. --- diff --git a/accesslog.cpp b/accesslog.cpp index 3183a10..03aeec8 100644 --- a/accesslog.cpp +++ b/accesslog.cpp @@ -51,23 +51,21 @@ void AccessLogThread::do_work() swap(pending_writes, writes); } - if (logfp == NULL) { - continue; - } - - // Do the actual writes. - time_t now = time(NULL); - for (size_t i = 0; i < writes.size(); ++i) { - fprintf(logfp, "%llu %s %s %d %llu %llu %llu\n", - (long long unsigned)(writes[i].connect_time), - writes[i].remote_addr.c_str(), - writes[i].stream_id.c_str(), - int(now - writes[i].connect_time), - (long long unsigned)(writes[i].bytes_sent), - (long long unsigned)(writes[i].bytes_lost), - (long long unsigned)(writes[i].num_loss_events)); + if (logfp != NULL) { + // Do the actual writes. + time_t now = time(NULL); + for (size_t i = 0; i < writes.size(); ++i) { + fprintf(logfp, "%llu %s %s %d %llu %llu %llu\n", + (long long unsigned)(writes[i].connect_time), + writes[i].remote_addr.c_str(), + writes[i].stream_id.c_str(), + int(now - writes[i].connect_time), + (long long unsigned)(writes[i].bytes_sent), + (long long unsigned)(writes[i].bytes_lost), + (long long unsigned)(writes[i].num_loss_events)); + } + fflush(logfp); } - fflush(logfp); // Wait until the stop_fd pipe is closed, one second has passed. // or a spurious signal arrives.