From 9045f528b9b6f21f0d15475d2dffd49bb51598fc Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期一, 26 十二月 2022 09:16:03 +0800
Subject: [PATCH] optimize cpu
---
src/nng_wrap.cpp | 12 +++++++-----
src/nng_wrap.h | 2 +-
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/nng_wrap.cpp b/src/nng_wrap.cpp
index c3b835f..c64e424 100644
--- a/src/nng_wrap.cpp
+++ b/src/nng_wrap.cpp
@@ -590,20 +590,22 @@
if (!w) return -1;
- *src = malloc(sizeof(uint64_t));
- *(uint64_t*)(*src) = key;
+ *src = malloc(sizeof(key));
+ memcpy(*src, &key, sizeof(key));
return w->mode;
}
-int send_reply(const void* src, const void* msg, const int msg_len, void* arg/*=NULL*/){
+int send_reply(void* src, const void* msg, const int msg_len, void* arg/*=NULL*/){
_rr* rep = (_rr*)arg;
if (!rep) rep = singleton<_rr>();
struct work* w{};
{
- auto key = *(static_cast<uint64_t*>(const_cast<void*>(src)));
- free(const_cast<void*>(src));
+ uint64_t key;
+ memcpy(&key, src, sizeof(key));
+ // auto key = *(static_cast<uint64_t*>(const_cast<void*>(src)));
+ free(src);
lock_guard<mutex> l{rep->mtx_msg_};
auto iter = rep->works_.find(key);
diff --git a/src/nng_wrap.h b/src/nng_wrap.h
index 6d82afb..73dc670 100644
--- a/src/nng_wrap.h
+++ b/src/nng_wrap.h
@@ -28,7 +28,7 @@
void** reply, int* reply_len, const int to_ms, void* arg=NULL);
int start_reply(const std::string& url, const int port, void* arg=NULL);
int read_request(void** src, std::string* msg, const int to_ms, void* arg=NULL);
-int send_reply(const void* src, const void* msg, const int msg_len, void* arg=NULL);
+int send_reply(void* src, const void* msg, const int msg_len, void* arg=NULL);
}
--
Gitblit v1.8.0