diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-05-07 11:46:45 +0200 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-05-07 11:46:45 +0200 |
commit | 04c3650d5f730891c33e45d2f07c052c6393c2e8 (patch) | |
tree | d95431a387598f88b4a05df7a1dd3d3c91f6126b /src/InputZeroMQReader.cpp | |
parent | f6e3913f80ec15f2a554dc2ad1fe219cefd1f5d2 (diff) | |
parent | 3a7202306c6aca5be2dad604f62063d605fd0982 (diff) | |
download | dabmod-04c3650d5f730891c33e45d2f07c052c6393c2e8.tar.gz dabmod-04c3650d5f730891c33e45d2f07c052c6393c2e8.tar.bz2 dabmod-04c3650d5f730891c33e45d2f07c052c6393c2e8.zip |
Merge branch 'next' into lime
Diffstat (limited to 'src/InputZeroMQReader.cpp')
-rw-r--r-- | src/InputZeroMQReader.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/InputZeroMQReader.cpp b/src/InputZeroMQReader.cpp index 3661748..1ebc1ca 100644 --- a/src/InputZeroMQReader.cpp +++ b/src/InputZeroMQReader.cpp @@ -42,6 +42,8 @@ using namespace std; +constexpr int ZMQ_TIMEOUT_MS = 100; + #define NUM_FRAMES_PER_ZMQ_MESSAGE 4 /* A concatenation of four ETI frames, * whose maximal size is 6144. @@ -76,6 +78,9 @@ InputZeroMQReader::InputZeroMQReader() : InputZeroMQReader::~InputZeroMQReader() { m_running = false; + // This avoids the ugly "context was terminated" error because it lets + // poll do its thing first + this_thread::sleep_for(chrono::milliseconds(2 * ZMQ_TIMEOUT_MS)); m_zmqcontext.close(); if (m_recv_thread.joinable()) { m_recv_thread.join(); @@ -190,8 +195,7 @@ void InputZeroMQReader::RecvProcess() zmq::pollitem_t items[1]; items[0].socket = subscriber; items[0].events = ZMQ_POLLIN; - const int zmq_timeout_ms = 100; - const int num_events = zmq::poll(items, 1, zmq_timeout_ms); + const int num_events = zmq::poll(items, 1, ZMQ_TIMEOUT_MS); if (num_events == 0) { message_t msg; msg.timeout = true; |