From a1ca76f42ecf2197e2bcc639d5bd556e3cdcfd70 Mon Sep 17 00:00:00 2001 From: Korneliusz Osmenda Date: Tue, 30 Aug 2022 18:21:06 +0200 Subject: [PATCH] Remove irqlock as it breaks bt stack ... as we have one provider consumer pair it should be safeish --- src/fifo.hpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/fifo.hpp b/src/fifo.hpp index 56b0911..f7765e9 100644 --- a/src/fifo.hpp +++ b/src/fifo.hpp @@ -17,17 +17,13 @@ public: FIFO() : data(), data_end(&data[LEN]), wrptr(data), rdptr(data){}; void clear() { - auto key = irq_lock(); atomic_ptr_set(&wrptr, data); atomic_ptr_set(&rdptr, data); - irq_unlock(key); } inline intptr_t put(CNT val) { - auto key = irq_lock(); volatile CNT *tmwr = (volatile CNT *)atomic_ptr_get(&wrptr); volatile CNT *tmrd = (volatile CNT *)atomic_ptr_get(&rdptr); - irq_unlock(key); tmwr += 1; if(tmwr == data_end) @@ -41,10 +37,8 @@ public: } inline intptr_t get(CNT* val) { - auto key = irq_lock(); volatile CNT *tmwr = (volatile CNT *)atomic_ptr_get(&wrptr); volatile CNT *tmrd = (volatile CNT *)atomic_ptr_get(&rdptr); - irq_unlock(key); if (tmwr == tmrd) return 0; tmrd += 1; @@ -56,10 +50,8 @@ public: } inline intptr_t check() { - auto key = irq_lock(); volatile CNT *tmwr = (volatile CNT *)atomic_ptr_get(&wrptr); volatile CNT *tmrd = (volatile CNT *)atomic_ptr_get(&rdptr); - irq_unlock(key); int ret = (tmwr - tmrd); if (ret < 0) ret +=LEN; return ret;