From d8336d58c2556efa91f6569d01d06a2c3e68d6dc Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Tue, 17 Sep 2024 16:32:30 +0200 Subject: [PATCH] porting/nuttx: Remove not used wqueue.h This looks like copy-and-paste from Linux port. --- porting/npl/nuttx/src/wqueue.h | 104 --------------------------------- 1 file changed, 104 deletions(-) delete mode 100644 porting/npl/nuttx/src/wqueue.h diff --git a/porting/npl/nuttx/src/wqueue.h b/porting/npl/nuttx/src/wqueue.h deleted file mode 100644 index 7821eacda6..0000000000 --- a/porting/npl/nuttx/src/wqueue.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - wqueue.h - Worker thread queue based on the Standard C++ library list - template class. - ------------------------------------------ - Copyright (c) 2013 Vic Hargrave - 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. -*/ - -// https://vichargrave.github.io/articles/2013-01/multithreaded-work-queue-in-cpp -// https://github.com/vichargrave/wqueue/blob/master/wqueue.h - - -#ifndef __wqueue_h__ -#define __wqueue_h__ - -#include -#include -#include - -struct wqueue_s -{ - dq_queue_s m_queue; - pthread_mutex_t m_mutex; - pthread_mutexattr_t m_mutex_attr; - pthread_cond_t m_condv; -}; - -using namespace std; - -template class wqueue -{ - dq_queue_s m_queue; - pthread_mutex_t m_mutex; - pthread_mutexattr_t m_mutex_attr; - pthread_cond_t m_condv; - -public: - wqueue() - { - dq_init(m_queue); - pthread_mutexattr_init(&m_mutex_attr); - pthread_mutexattr_settype(&m_mutex_attr, PTHREAD_MUTEX_RECURSIVE); - pthread_mutex_init(&m_mutex, &m_mutex_attr); - pthread_cond_init(&m_condv, NULL); - } - - ~wqueue() { - pthread_mutex_destroy(&m_mutex); - pthread_cond_destroy(&m_condv); - } - - void put(T item) { - dq_entry_t* entry = malloc(sizeof(T)); - - pthread_mutex_lock(&m_mutex); - dq_addlast(entry, &m_queue); - m_queue.push_back(item); - pthread_cond_signal(&m_condv); - pthread_mutex_unlock(&m_mutex); - } - - T get(uint32_t tmo) { - pthread_mutex_lock(&m_mutex); - if (tmo) { - while (m_queue.size() == 0) { - pthread_cond_wait(&m_condv, &m_mutex); - } - } - - T item = NULL; - - if (m_queue.size() != 0) { - item = m_queue.front(); - m_queue.pop_front(); - } - - pthread_mutex_unlock(&m_mutex); - return item; - } - - void remove(T item) { - pthread_mutex_lock(&m_mutex); - m_queue.remove(item); - pthread_mutex_unlock(&m_mutex); - } - - int size() { - pthread_mutex_lock(&m_mutex); - int size = m_queue.size(); - pthread_mutex_unlock(&m_mutex); - return size; - } -}; - -#endif