From aac0fe50f0ae9d13ff8ff7db2288a877b2fb2c53 Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期五, 17 十二月 2021 14:13:55 +0800 Subject: [PATCH] bug fixed --- src/nng_wrap.cpp | 28 ++++++++-------------------- 1 files changed, 8 insertions(+), 20 deletions(-) diff --git a/src/nng_wrap.cpp b/src/nng_wrap.cpp index 1972e07..660f106 100644 --- a/src/nng_wrap.cpp +++ b/src/nng_wrap.cpp @@ -12,18 +12,6 @@ namespace nng_wrap { -// static int server_socket(const string& url, const int protocol, int family=AF_SP){ -// int sock = nn_socket(family, protocol); -// if (sock < 0) return sock; -// remove_exist(url); -// int rc = nn_bind(sock, url.c_str()); -// if (rc < 0) { -// nn_close(sock); -// return rc; -// } -// return sock; -// } - static int client_socket(const string& url, const int protocol, int family=AF_SP){ int sock = nn_socket(family, protocol); if (sock < 0) return sock; @@ -135,7 +123,7 @@ } set_socket_timeout(sock, timeout_req_rep); pub->socket_ = sock; - pub->t_ = thread([pub]{ + pub->t_ = get_thread([](const auto pub){ while (!pub->t_quit_.load()) { _ps::psmsg *msg{NULL}; { @@ -166,7 +154,7 @@ } } - }); + }, pub); return sock; } @@ -211,7 +199,7 @@ } // set_socket_timeout(sock, timeout_req_rep); sub->socket_ = sock; - sub->t_ = thread([sub]{ + sub->t_ = get_thread([](const auto sub){ while (!sub->t_quit_.load()) { char* m; int m_len = nn_recv(sub->socket_, &m, NN_MSG, NN_DONTWAIT); @@ -223,9 +211,9 @@ lock_guard<mutex> l{sub->mtx_topics_}; for(auto && i : sub->topics_){ if (tmp_msg.size() < i.size()) continue; - topic = tmp_msg.substr(0, i.size()); + topic = move(tmp_msg.substr(0, i.size())); if (topic == i){ - msg = tmp_msg.substr(i.size()); + msg = move(tmp_msg.substr(i.size())); break; } } @@ -254,7 +242,7 @@ // printf("======>> subscribe nn_recv failed %s\n", nn_strerror(nn_errno())); } } - }); + }, sub); return 0; } @@ -331,7 +319,7 @@ sv->url_ = url; sv->fixed_msg_ = move(fixed_msg); - sv->t_ = thread([sv]{ + sv->t_ = get_thread([](const auto sv){ TAG; @@ -355,7 +343,7 @@ } } } - }); + }, sv); return 0; } -- Gitblit v1.8.0