Преглед изворни кода

The log counter no longer maintains ownership of the future.

Staz M пре 4 година
родитељ
комит
9e49fcc654
2 измењених фајлова са 2 додато и 4 уклоњено
  1. 2 3
      src/logcounter.cpp
  2. 0 1
      src/logcounter.hpp

+ 2 - 3
src/logcounter.cpp

@@ -24,15 +24,14 @@ rtc::LogCounter::LogCounter(plog::Severity severity, const std::string &text, st
 rtc::LogCounter& rtc::LogCounter::operator++(int) {
     std::lock_guard lock(mutex);
     count++;
-    if (!future) {
-        future = ThreadPool::Instance().schedule(duration, [](std::weak_ptr<LogCounter> ptr) {
+    if (count == 1) {
+        ThreadPool::Instance().schedule(duration, [](std::weak_ptr<LogCounter> ptr) {
             if (auto log = ptr.lock()) {
                 int countCopy;
                 {
                     std::lock_guard lock(log->mutex);
                     countCopy = log->count;
                     log->count = 0;
-                    log->future = std::nullopt;
                 }
                 PLOG(log->severity) << log->text << ": " << countCopy << " (over "
                                << std::chrono::duration_cast<std::chrono::seconds>(log->duration).count() << " seconds)";

+ 0 - 1
src/logcounter.hpp

@@ -31,7 +31,6 @@ private:
 
     int count = 0;
     std::mutex mutex;
-    std::optional<invoke_future_t<void (*)()>> future;
 public:
 
     LogCounter(plog::Severity severity, const std::string& text, std::chrono::seconds duration=std::chrono::seconds(1));