From e994d555ba64d68d874099ed7c1b9e22c0b592b0 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期二, 01 十二月 2020 15:45:11 +0800
Subject: [PATCH] update
---
src/socket/net_mod_socket.c | 12 ++++++------
src/socket/net_mod_socket.h | 9 +++++++--
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/src/socket/net_mod_socket.c b/src/socket/net_mod_socket.c
index a3d4543..f4259eb 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,10 +57,12 @@
/* 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 */
@@ -70,7 +73,7 @@
/* 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,7 +98,6 @@
NetConnPool *mpool;
/* Make first caller allocate key for thread-specific data */
-
ret = pthread_once(&once, _createKey_);
if (ret != 0) {
LoggerFactory::getLogger()->error(errno, "NetModSocket::_sendandrecv_ pthread_once");
diff --git a/src/socket/net_mod_socket.h b/src/socket/net_mod_socket.h
index 367dec8..5f20ee9 100644
--- a/src/socket/net_mod_socket.h
+++ b/src/socket/net_mod_socket.h
@@ -70,17 +70,22 @@
// pool req_resp_pool;
-
+ // request header 缂栫爜涓虹綉缁滀紶杈撶殑瀛楄妭
static void * encode_request_head(net_mod_request_head_t & request);
+ // 瑙g爜request header
static net_mod_request_head_t decode_request_head(void *headbs);
static void * encode_response_head(net_mod_response_head_t & response);
static net_mod_response_head_t decode_response_head(void *_headbs);
- static void _destructor_(void *_pool);
+ // 閿�姣乼hreadlocal pool
+ static void _destroyConnPool_(void *_pool);
+ // 鍒涘缓thread local key
static void _createKey_(void);
+ //璇诲彇杩斿洖淇℃伅
int read_response(int clientfd, net_mod_recv_msg_t *recv_msg);
+ // 鍙戦�佽姹備俊鎭�
int write_request(int clientfd, net_mod_request_head_t &request_head, void *send_buf, int send_size, void *topic_buf, int topic_size);
int _sendandrecv_(net_node_t *node_arr, int node_arr_len, void *send_buf, int send_size,
--
Gitblit v1.8.0