From 6bb183780c55f430a16dbf09e174ef4f42ff2df5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E5=AE=A3=E6=AD=A3?= Date: Tue, 6 Apr 2021 13:47:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dadd=5Fhos=5Finfo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hos_client.cpp | 10 ++++++++-- src/hos_hash.cpp | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/hos_client.cpp b/src/hos_client.cpp index f01156b6..e14ad84b 100644 --- a/src/hos_client.cpp +++ b/src/hos_client.cpp @@ -80,9 +80,10 @@ typedef struct hos_client_handle_s }hos_client_handle_t; hos_client_handle g_hos_handle;//一个进程只允许有一个g_hos_handle -hos_info_t *hash_hos_info[MAX_HOS_CLIENT_THREAD_NUM]; +//hos_info_t *hash_hos_info[MAX_HOS_CLIENT_THREAD_NUM]; +hos_info_t *hash_hos_info; size_t *hos_cache;//记录当前hos缓存了多少数据 -size_t fd_info[MAX_HOS_CLIENT_THREAD_NUM][MAX_HOS_CLIENT_FD_NUM + 1]; //fd 实际从3开始, fd[thread_id][0]记录register的fd,fd[thread_id][1]记录inject的fd +size_t (*fd_info)[MAX_HOS_CLIENT_FD_NUM + 1]; //fd 实际从3开始, fd[thread_id][0]记录register的fd,fd[thread_id][1]记录inject的fd Aws::SDKOptions g_options; static char g_hos_error_msg[1024]; static size_t g_hos_error_num; @@ -206,6 +207,10 @@ void hos_set_thread_sum(hos_client_handle client, size_t thread_sum) { hos_cache = (size_t *)realloc(hos_cache, thread_sum * sizeof(size_t)); } + if (hash_hos_info) + { + hash_hos_info = (hos_info_t *)realloc(hash_hos_info, thread_sum * sizeof(hos_info_t)); + } return ; } @@ -264,6 +269,7 @@ hos_client_handle hos_client_create(const char *serverip, size_t port, const cha g_hos_handle->executor = std::dynamic_pointer_cast(config.executor); hos_cache = (size_t *)calloc(g_hos_handle->thread_sum, sizeof(size_t)); + hash_hos_info = (hos_info_t *)calloc(1, sizeof(hos_info_t)); fd_info[0][0] = 65533; fd_info[0][1] = 0; diff --git a/src/hos_hash.cpp b/src/hos_hash.cpp index fe6662e9..bf54005d 100644 --- a/src/hos_hash.cpp +++ b/src/hos_hash.cpp @@ -8,7 +8,7 @@ void add_hos_info(hos_info_t **handle, hos_info_t *input) { hos_info_t *value = NULL; - HASH_FIND_INT(*handle, &input->fd, value); + HASH_FIND_INT(*handle, (int *)&input->fd, value); if (value == NULL) { value = (hos_info_t *)malloc(sizeof(hos_info_t));