From aa2f3b2a9968bb4928463bdae05fb026d16b60bb Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期五, 04 十二月 2020 19:07:01 +0800
Subject: [PATCH] 固定bus key

---
 src/socket/net_mod_socket.c |   23 ++++++++++++-----------
 1 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/socket/net_mod_socket.c b/src/socket/net_mod_socket.c
index a3d4543..07438fc 100644
--- a/src/socket/net_mod_socket.c
+++ b/src/socket/net_mod_socket.c
@@ -15,7 +15,8 @@
 
 NetModSocket::NetModSocket() 
 {
-  if (Signal(SIGPIPE, SIG_IGN) == SIG_ERR)    err_msg(errno, "signal");
+  if (Signal(SIGPIPE, SIG_IGN) == SIG_ERR)
+      logger->error(errno, "NetModSocket::NetModSocket signal");
 }
 
 
@@ -56,21 +57,23 @@
 
 
 /* Free thread-specific data buffer */
-void NetModSocket::_destructor_(void *_pool)
+void NetModSocket::_destroyConnPool_(void *_pool)
 {
+
   NetConnPool *mpool = (NetConnPool *)_pool;
   delete mpool;
+  logger->debug("destory connPool");
 }
 
  /* One-time key creation function */
-void NetModSocket::_createKey_(void)
+void NetModSocket::_createConnPoolKey_(void)
 {
   int ret;
 
   /* Allocate a unique thread-specific data key and save the address
      of the destructor for thread-specific data buffers */
 
-  ret = pthread_key_create(&poolKey, _destructor_);
+  ret = pthread_key_create(&poolKey, _destroyConnPool_);
   if (ret != 0) {
     logger->error(ret, "pthread_key_create");
     exit(1);
@@ -83,8 +86,6 @@
   int i, n, recv_size, connfd;
   net_node_t *node;
   void *recv_buf;
-
- 
   
   net_mod_request_head_t request_head = {};
  
@@ -97,8 +98,7 @@
   NetConnPool *mpool;
 
   /* Make first caller allocate key for thread-specific data */
-
-  ret = pthread_once(&once, _createKey_);
+  ret = pthread_once(&once, _createConnPoolKey_);
   if (ret != 0) {
     LoggerFactory::getLogger()->error(errno, "NetModSocket::_sendandrecv_ pthread_once");
     exit(1);
@@ -107,8 +107,8 @@
   mpool = (NetConnPool *)pthread_getspecific(poolKey);
   if (mpool == NULL)
   {
-    /* If first call from this thread, allocate
-                                   buffer for thread, and save its location */
+    /* If first call from this thread, allocate buffer for thread, and save its location */
+    logger->debug("Create connPool");
     mpool = new NetConnPool();
     if (mpool == NULL) {
       LoggerFactory::getLogger()->error(errno, "NetModSocket::_sendandrecv_ malloc");
@@ -264,7 +264,7 @@
   NetConnPool *mpool;
 
   /* Make first caller allocate key for thread-specific data */
-  ret = pthread_once(&once, _createKey_);
+  ret = pthread_once(&once, _createConnPoolKey_);
   if (ret != 0) {
     LoggerFactory::getLogger()->error(errno, "NetModSocket::_sendandrecv_ pthread_once");
     exit(1);
@@ -303,6 +303,7 @@
         continue;
       }
       request_head.mod = BUS;
+      memcpy(request_head.host, node->host, sizeof(request_head.host));
       request_head.key = node->key;
       request_head.content_length = content_size;
       request_head.topic_length = strlen(topic) + 1;

--
Gitblit v1.8.0