Dev/rm volatile (#1007)

* Removing volatile and replacing with atomic to ensure atomicity

* compiling header include issue
This commit is contained in:
maliakal_d 2024-10-23 12:39:03 +02:00 committed by GitHub
parent 37e65634d4
commit 60868ae74e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 5 additions and 4 deletions

View File

@ -434,7 +434,7 @@ class DetectorImpl : public virtual slsDetectorDefs {
/** data streaming (down stream) enabled in client (zmq sckets created) */ /** data streaming (down stream) enabled in client (zmq sckets created) */
bool client_downstream{false}; bool client_downstream{false};
std::vector<std::unique_ptr<ZmqSocket>> zmqSocket; std::vector<std::unique_ptr<ZmqSocket>> zmqSocket;
volatile int numZmqRunning{0}; std::atomic<int> numZmqRunning{0};
/** mutex to synchronize main and data processing threads */ /** mutex to synchronize main and data processing threads */
mutable std::mutex mp; mutable std::mutex mp;

View File

@ -13,9 +13,10 @@
#include "sls/logger.h" #include "sls/logger.h"
#include "sls/sls_detector_defs.h" #include "sls/sls_detector_defs.h"
#include "sls/CircularFifo.h" #include "sls/CircularFifo.h"
#include <atomic>
namespace sls { namespace sls {
class Fifo : private virtual slsDetectorDefs { class Fifo : private virtual slsDetectorDefs {
@ -49,8 +50,8 @@ class Fifo : private virtual slsDetectorDefs {
CircularFifo<char> *fifoFree; CircularFifo<char> *fifoFree;
CircularFifo<char> *fifoStream; CircularFifo<char> *fifoStream;
int fifoDepth; int fifoDepth;
volatile int status_fifoBound; std::atomic<int> status_fifoBound;
volatile int status_fifoFree; std::atomic<int> status_fifoFree;
}; };
} // namespace sls } // namespace sls