Fixed bugs

dev
MasterRoby3 2023-09-08 11:41:42 +02:00
parent c1bfb07196
commit 6809c61148
5 changed files with 4 additions and 4 deletions

View File

@ -37,7 +37,7 @@ void ControlledQueue::put(uint32_t word) {
uint32_t ControlledQueue::get() { uint32_t ControlledQueue::get() {
std::unique_lock<std::mutex> lk(m_mtx); std::unique_lock<std::mutex> lk(m_mtx);
if ( !m_cv.wait_for(lk, std::chrono::microseconds(m_timeoutMicroseconds), !(m_queue.empty())) ) { if ( !m_cv.wait_for(lk, std::chrono::microseconds(m_timeoutMicroseconds), [&]() { return !(m_queue.empty()); } ) ) {
throw TimeoutException(); throw TimeoutException();
} }

Binary file not shown.

View File

@ -1,4 +1,3 @@
#include "ControlledQueue.h"
#include <cerrno> #include <cerrno>
#include <cstddef> #include <cstddef>
#include <cinttypes> #include <cinttypes>
@ -33,6 +32,7 @@
#include "fragment_dataformat.h" #include "fragment_dataformat.h"
#include "full_event_format.h" #include "full_event_format.h"
#include "TimeoutException.h" #include "TimeoutException.h"
#include "ControlledQueue.h"
#define MAX_EVENTS 1024 #define MAX_EVENTS 1024
#define MAX_QUEUE_SIZE 1000 #define MAX_QUEUE_SIZE 1000

BIN
prov.out

Binary file not shown.

View File

@ -103,14 +103,14 @@ int main(int argc, char* argv[]) {
uint8_t incorrectError = discrete_distr(generator); uint8_t incorrectError = discrete_distr(generator);
uint8_t corruptedError = discrete_distr(generator); uint8_t corruptedError = discrete_distr(generator);
uint8_t missingDataError = discrete_distr(generator); uint8_t missingDataError = discrete_distr(generator);
uint8_t timeoutError = discrete_distr(generator); //uint8_t timeoutError = discrete_distr(generator);
uint32_t firstStatusElement = 0x0; uint32_t firstStatusElement = 0x0;
if (incorrectError) firstStatusElement |= INCORRECT_ERROR; if (incorrectError) firstStatusElement |= INCORRECT_ERROR;
if (corruptedError) firstStatusElement |= CORRUPTED_ERROR; if (corruptedError) firstStatusElement |= CORRUPTED_ERROR;
if (missingDataError) firstStatusElement |= MISSING_DATA_ERROR; if (missingDataError) firstStatusElement |= MISSING_DATA_ERROR;
if (timeoutError) firstStatusElement |= TIMEOUT_ERROR; //if (timeoutError) firstStatusElement |= TIMEOUT_ERROR;
if (firstStatusElement != 0x0) { if (firstStatusElement != 0x0) {
header.numberOfStatusElements = 1; header.numberOfStatusElements = 1;