#include #include #include volatile std::atomic_bool should_exit(false); cpp_redis::redis_subscriber sub; cpp_redis::redis_client client; void sigint_handler(int) { std::cout << "disconnected (sigint handler)" << std::endl; sub.disconnect(); } int main(void) { sub.set_disconnection_handler([] (cpp_redis::redis_subscriber&) { std::cout << "sub disconnected (disconnection handler)" << std::endl; should_exit = true; }); sub.connect(); client.connect(); sub.subscribe("some_chan", [] (const std::string& chan, const std::string& msg) { std::cout << "MESSAGE " << chan << ": " << msg << std::endl; }); sub.psubscribe("*", [] (const std::string& chan, const std::string& msg) { std::cout << "PMESSAGE " << chan << ": " << msg << std::endl; }); signal(SIGINT, &sigint_handler); //while (not should_exit); return 0; }