diff options
| author | untodesu <kirill@untode.su> | 2025-06-28 01:59:49 +0500 |
|---|---|---|
| committer | untodesu <kirill@untode.su> | 2025-06-28 01:59:49 +0500 |
| commit | 61e5bcef2629e2d68b805a956a96fff264d4f74d (patch) | |
| tree | bca3a94bac79d34e3c0db57c77604f5a823ecbda /deps/include/spdlog/details/periodic_worker.h | |
| parent | 88c01588aa0830e219eaa62588839e4d1e2883ce (diff) | |
| download | voxelius-61e5bcef2629e2d68b805a956a96fff264d4f74d.tar.bz2 voxelius-61e5bcef2629e2d68b805a956a96fff264d4f74d.zip | |
Restructure dependencies and update to C++20
- Nuked static_assert from almost everywhere in the project
- Nuked binary dependency support. Might add one later though
- Separated dependency headers into a separate include subdirectory
- Grafted a thirdpartylegalnotices.txt generator from RITEG
- Pushed development snapshot version to 2126 (26th week of 2025)
Diffstat (limited to 'deps/include/spdlog/details/periodic_worker.h')
| -rw-r--r-- | deps/include/spdlog/details/periodic_worker.h | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/deps/include/spdlog/details/periodic_worker.h b/deps/include/spdlog/details/periodic_worker.h deleted file mode 100644 index bf54886..0000000 --- a/deps/include/spdlog/details/periodic_worker.h +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
-// Distributed under the MIT License (http://opensource.org/licenses/MIT)
-
-#pragma once
-
-// periodic worker thread - periodically executes the given callback function.
-//
-// RAII over the owned thread:
-// creates the thread on construction.
-// stops and joins the thread on destruction (if the thread is executing a callback, wait for it
-// to finish first).
-
-#include <chrono>
-#include <condition_variable>
-#include <functional>
-#include <mutex>
-#include <thread>
-namespace spdlog {
-namespace details {
-
-class SPDLOG_API periodic_worker {
-public:
- template <typename Rep, typename Period>
- periodic_worker(const std::function<void()> &callback_fun,
- std::chrono::duration<Rep, Period> interval) {
- active_ = (interval > std::chrono::duration<Rep, Period>::zero());
- if (!active_) {
- return;
- }
-
- worker_thread_ = std::thread([this, callback_fun, interval]() {
- for (;;) {
- std::unique_lock<std::mutex> lock(this->mutex_);
- if (this->cv_.wait_for(lock, interval, [this] { return !this->active_; })) {
- return; // active_ == false, so exit this thread
- }
- callback_fun();
- }
- });
- }
- std::thread &get_thread() { return worker_thread_; }
- periodic_worker(const periodic_worker &) = delete;
- periodic_worker &operator=(const periodic_worker &) = delete;
- // stop the worker thread and join it
- ~periodic_worker();
-
-private:
- bool active_;
- std::thread worker_thread_;
- std::mutex mutex_;
- std::condition_variable cv_;
-};
-} // namespace details
-} // namespace spdlog
-
-#ifdef SPDLOG_HEADER_ONLY
- #include "periodic_worker-inl.h"
-#endif
|
