From a788563db6390311f44268eb5b41ddb9336b2cfa Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Sat, 28 Dec 2024 19:27:36 -0600 Subject: [PATCH] cleanup --- .../librepertory/include/utils/throttle.hpp | 59 ----------------- repertory/librepertory/src/utils/throttle.cpp | 64 ------------------- 2 files changed, 123 deletions(-) delete mode 100644 repertory/librepertory/include/utils/throttle.hpp delete mode 100644 repertory/librepertory/src/utils/throttle.cpp diff --git a/repertory/librepertory/include/utils/throttle.hpp b/repertory/librepertory/include/utils/throttle.hpp deleted file mode 100644 index 3ec1af9e..00000000 --- a/repertory/librepertory/include/utils/throttle.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - Copyright <2018-2025> - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -*/ -#ifndef REPERTORY_INCLUDE_UTILS_THROTTLE_HPP_ -#define REPERTORY_INCLUDE_UTILS_THROTTLE_HPP_ - -namespace repertory { -class throttle final { -public: - throttle() : max_size_(10u) {} - - explicit throttle(std::size_t max_size) : max_size_(max_size) {} - -public: - throttle(const throttle &) noexcept = delete; - throttle(throttle &&) noexcept = delete; - auto operator=(const throttle &) -> throttle & = delete; - auto operator=(throttle &&) -> throttle & = delete; - -public: - ~throttle() { shutdown(); } - -private: - const std::size_t max_size_; - std::size_t count_ = 0u; - bool shutdown_ = false; - std::mutex mutex_; - std::condition_variable notify_; - -public: - void decrement(); - - void increment_or_wait(); - - void reset(); - - void shutdown(); -}; -} // namespace repertory - -#endif // REPERTORY_INCLUDE_UTILS_THROTTLE_HPP_ diff --git a/repertory/librepertory/src/utils/throttle.cpp b/repertory/librepertory/src/utils/throttle.cpp deleted file mode 100644 index ba113eca..00000000 --- a/repertory/librepertory/src/utils/throttle.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright <2018-2025> - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -*/ -#include "utils/throttle.hpp" - -#include "types/repertory.hpp" - -namespace repertory { -void throttle::decrement() { - mutex_lock l(mutex_); - if (not shutdown_) { - if (count_ > 0) { - count_--; - } - notify_.notify_one(); - } -} - -void throttle::increment_or_wait() { - unique_mutex_lock l(mutex_); - if (not shutdown_) { - if (count_ >= max_size_) { - notify_.wait(l); - } - if (not shutdown_) { - count_++; - } - } -} - -void throttle::reset() { - unique_mutex_lock l(mutex_); - if (shutdown_) { - count_ = 0; - shutdown_ = false; - } -} - -void throttle::shutdown() { - if (not shutdown_) { - unique_mutex_lock l(mutex_); - shutdown_ = true; - notify_.notify_all(); - } -} -} // namespace repertory