Skip to content

Commit 3e96d5b

Browse files
committed
#18 add lock to pub data
1 parent 420003b commit 3e96d5b

File tree

3 files changed

+5
-1
lines changed

3 files changed

+5
-1
lines changed

example/NetCam/mv_cam.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ void MvCam::Start() {
264264
LOG(INFO) << "Camera name is " << name;
265265
}
266266
cam_threads.emplace_back(&MvCam::Receive, this, handle, name);
267-
LOG(INFO) << "Camera name is " << name << " start.";
267+
LOG(INFO) << "Camera " << name << " start.";
268268
}
269269
}
270270
} // namespace infinite_sense

infinite_sense_core/include/messenger.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include <thread>
44
#include <zmq.hpp>
55
#include <functional>
6+
#include <mutex>
67

78
namespace infinite_sense {
89
class Messenger {
@@ -23,6 +24,7 @@ class Messenger {
2324
Messenger();
2425
~Messenger();
2526
void CleanUp();
27+
std::mutex mutex_;
2628
zmq::context_t context_{};
2729
zmq::socket_t publisher_{}, subscriber_{};
2830
std::string endpoint_{};

infinite_sense_core/src/messenger.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ void Messenger::CleanUp() {
3939

4040
void Messenger::Pub(const std::string& topic, const std::string& metadata) {
4141
try {
42+
std::lock_guard lock(mutex_);
4243
publisher_.send(zmq::buffer(topic), zmq::send_flags::sndmore);
4344
publisher_.send(zmq::buffer(metadata), zmq::send_flags::dontwait);
4445
} catch (const zmq::error_t& e) {
@@ -48,6 +49,7 @@ void Messenger::Pub(const std::string& topic, const std::string& metadata) {
4849

4950
void Messenger::PubStruct(const std::string& topic, const void* data, const size_t size) {
5051
try {
52+
std::lock_guard lock(mutex_);
5153
publisher_.send(zmq::buffer(topic), zmq::send_flags::sndmore);
5254
publisher_.send(zmq::buffer(data, size), zmq::send_flags::dontwait);
5355
} catch (const zmq::error_t& e) {

0 commit comments

Comments
 (0)