Skip to content

Commit 08968da

Browse files
added waiting for message
1 parent 6f67adf commit 08968da

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

client-example/src/main.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,8 @@ int main(int argc, char* argv[]) {
6161
try {
6262
Connection connection(broker, port);
6363
connection.queueBind("timed_queue_test");
64-
while (true) {
65-
std::vector<uint8_t> v = connection.collect();
66-
if (v.size() != 0) {
67-
std::cout << "recieved message from timed queue!" << std::endl;
68-
}
69-
}
64+
std::vector<uint8_t> v = connection.collect();
65+
std::cout << "recieved message from timed queue!" << std::endl;
7066
} catch (PostmanException e) {
7167
std::cout << e.what() << std::endl;
7268
}

mailbox/src/ConnectionReciever.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
#include <algorithm>
1111
#include <cerrno>
1212
#include <vector>
13+
#include <thread>
14+
#include <chrono>
1315

1416
const int queueNameSize = 255;
1517
const int keySize = 255;
@@ -119,7 +121,16 @@ void ConnectionReciever::handleMessageCollection() {
119121
return;
120122
}
121123

122-
std::vector<uint8_t> message = _queue->collect();
124+
bool waiting = true;
125+
std::vector<uint8_t> message;
126+
while(waiting) {
127+
message = _queue->collect();
128+
if (message.size() != 0) {
129+
waiting = false;
130+
} else {
131+
std::this_thread::sleep_for(std::chrono::milliseconds(100));
132+
}
133+
}
123134
uint64_t size = message.size();
124135

125136
if (write(_socket, &size, 8) < 0) {

0 commit comments

Comments
 (0)