Skip to content
This repository was archived by the owner on Apr 6, 2019. It is now read-only.

Commit f1ec55c

Browse files
committed
Merge pull request #2 from Cylix/issue_1
add boost asio worker to keep io service loop alive
2 parents b96dd15 + f08d987 commit f1ec55c

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

examples/redis_client.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include <signal.h>
44
#include <iostream>
55

6-
bool should_exit = false;
6+
volatile std::atomic_bool should_exit(false);
77
cpp_redis::redis_client client;
88

99
void

includes/cpp_redis/network/io_service.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace network {
1111
class io_service {
1212
public:
1313
//! ctor & dtor
14-
io_service(void) = default;
14+
io_service(void);
1515
~io_service(void);
1616

1717
//! copy ctor & assignment operator
@@ -28,6 +28,7 @@ class io_service {
2828

2929
private:
3030
boost::asio::io_service m_io_service;
31+
boost::asio::io_service::work m_work;
3132
std::thread m_io_service_thread;
3233
};
3334

sources/network/io_service.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@ namespace cpp_redis {
44

55
namespace network {
66

7+
io_service::io_service(void)
8+
: m_work(m_io_service) {}
9+
710
io_service::~io_service(void) {
8-
if (m_io_service_thread.joinable())
11+
if (m_io_service_thread.joinable()) {
12+
m_io_service.stop();
913
m_io_service_thread.join();
14+
}
1015
}
1116

1217
void

0 commit comments

Comments
 (0)