From e560a888c30fcbc3ca79c0794231fdf2bac65612 Mon Sep 17 00:00:00 2001 From: Willy-JL <49810075+Willy-JL@users.noreply.github.com> Date: Sun, 31 Dec 2023 18:47:35 +0100 Subject: [PATCH] Buffer state and concurrency improvements --- esp32_marauder/Buffer.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/esp32_marauder/Buffer.cpp b/esp32_marauder/Buffer.cpp index 9e1fe2e..f53d831 100644 --- a/esp32_marauder/Buffer.cpp +++ b/esp32_marauder/Buffer.cpp @@ -51,6 +51,7 @@ void Buffer::openFile(String file_name, fs::FS* fs, bool serial, bool is_pcap) { if (!save_pcap) { this->fs = NULL; this->serial = false; + writing = false; return; } this->fs = fs; @@ -143,6 +144,7 @@ void Buffer::write(uint16_t n){ void Buffer::write(const uint8_t* buf, uint32_t len){ if(!writing) return; + while(saving) delay(10); if(useA){ memcpy(&bufA[bufSizeA], buf, len); @@ -198,10 +200,12 @@ void Buffer::saveSerial() { } void Buffer::save() { - if((bufSizeA + bufSizeB) == 0) return; - saving = true; - writing = false; + + if((bufSizeA + bufSizeB) == 0){ + saving = false; + return; + } if(this->fs) saveFs(); if(this->serial) saveSerial(); @@ -210,5 +214,4 @@ void Buffer::save() { bufSizeB = 0; saving = false; - writing = true; }