summaryrefslogtreecommitdiff
path: root/src/job_queue.cpp
diff options
context:
space:
mode:
authorFrederico Linhares <fred@linhares.blue>2024-05-16 14:22:35 -0300
committerFrederico Linhares <fred@linhares.blue>2024-05-16 14:22:35 -0300
commitd5a2b6bca9f9cc57dcca19962d5ba9b83d26da3e (patch)
treefa4decb441b0cc5cd189183166a324079f37c45a /src/job_queue.cpp
parent43821b0cffc5aa419c0218992f06f8962ae54a13 (diff)
refa Move BluCan initialization to BluCat folderHEADmaster
Diffstat (limited to 'src/job_queue.cpp')
-rw-r--r--src/job_queue.cpp61
1 files changed, 0 insertions, 61 deletions
diff --git a/src/job_queue.cpp b/src/job_queue.cpp
deleted file mode 100644
index 49bf34f..0000000
--- a/src/job_queue.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2022 Frederico de Oliveira Linhares
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "job_queue.hpp"
-
-#include <chrono>
-
-JobQueue::JobQueue():
- jobs{},
- _stop{false}
-{
-}
-
-void
-JobQueue::stop()
-{
- using namespace std::chrono_literals;
-
- while(!this->jobs.empty()) std::this_thread::sleep_for(1000ms);
- this->_stop = true;
- this->condition.notify_all();
-}
-
-void
-JobQueue::push(Job job)
-{
- std::unique_lock<std::mutex> lock{this->access};
- this->jobs.push_back(job);
- this->condition.notify_one();
-}
-
-Job
-JobQueue::pop()
-{
- std::unique_lock<std::mutex> lock{this->access};
- this->condition.wait(lock, [this]{
- return !this->jobs.empty() || this->_stop;});
- if(!this->jobs.empty())
- {
- auto job{std::move(this->jobs.front())};
- this->jobs.pop_front();
- return job;
- }
- else
- {
- return Job{nullptr};
- }
-}