From f54b68d3dbc16346d8bea9e981edeed626d2b0f5 Mon Sep 17 00:00:00 2001 From: Terraneo Federico <fede.tft@miosix.org> Date: Sun, 30 Apr 2023 17:17:36 +0200 Subject: [PATCH] Code reuse in class Queue --- miosix/kernel/queue.h | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/miosix/kernel/queue.h b/miosix/kernel/queue.h index 81f5217f..9b62d592 100644 --- a/miosix/kernel/queue.h +++ b/miosix/kernel/queue.h @@ -218,16 +218,11 @@ template <typename T, unsigned int len> void Queue<T,len>::put(const T& elem) { FastInterruptDisableLock dLock; - IRQwakeWaitingThread(); - while(isFull()) + while(IRQput(elem)==false) { waiting=Thread::IRQgetCurrentThread(); Thread::IRQenableIrqAndWait(dLock); - IRQwakeWaitingThread(); } - numElem++; - buffer[putPos]=elem; - if(++putPos==len) putPos=0; } template <typename T, unsigned int len> @@ -258,16 +253,11 @@ template <typename T, unsigned int len> void Queue<T,len>::get(T& elem) { FastInterruptDisableLock dLock; - IRQwakeWaitingThread(); - while(isEmpty()) + while(IRQget(elem)==false) { waiting=Thread::IRQgetCurrentThread(); Thread::IRQenableIrqAndWait(dLock); - IRQwakeWaitingThread(); } - numElem--; - elem=buffer[getPos]; - if(++getPos==len) getPos=0; } template <typename T, unsigned int len> -- GitLab