From 124011574583b980c1794a1de4e61b39f73f1f11 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期四, 14 一月 2021 16:44:49 +0800 Subject: [PATCH] Merge branch 'dev' into rdma --- src/socket/shm_socket.cpp | 26 +++++++++++++++++--------- 1 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/socket/shm_socket.cpp b/src/socket/shm_socket.cpp index c0f4c44..672a9a7 100644 --- a/src/socket/shm_socket.cpp +++ b/src/socket/shm_socket.cpp @@ -52,7 +52,7 @@ logger->debug("shm_open_socket\n"); shm_socket_t *socket = (shm_socket_t *)calloc(1, sizeof(shm_socket_t)); socket->socket_type = socket_type; - socket->key = -1; + socket->key = 0; socket->force_bind = false; socket->dispatch_thread = 0; socket->status = SHM_CONN_CLOSED; @@ -127,7 +127,7 @@ int key; hashtable_t *hashtable = mm_get_hashtable(); - if (socket->key == -1) { + if (socket->key == 0) { key = hashtable_alloc_key(hashtable); socket->key = key; } else { @@ -220,7 +220,7 @@ return -1; } - if (socket->key == -1) { + if (socket->key == 0) { socket->key = hashtable_alloc_key(hashtable); } else { if(!_shm_socket_check_key(socket)) { @@ -333,7 +333,7 @@ err_exit(s, "shm_sendto : pthread_mutex_lock"); if (socket->queue == NULL) { - if (socket->key == -1) { + if (socket->key == 0) { socket->key = hashtable_alloc_key(hashtable); } else { @@ -386,12 +386,12 @@ delete remoteQueue; mm_free(dest.buf); if(rv == EBUS_TIMEOUT) { - bus_errno = EBUS_TIMEOUT; - logger->error(errno, "sendto key %d failed, %s", key, bus_strerror(EBUS_TIMEOUT)); + // bus_errno = EBUS_TIMEOUT; + // logger->error("sendto key %d failed, %s", key, bus_strerror(EBUS_TIMEOUT)); return EBUS_TIMEOUT; } else { //logger->error(errno, "sendto key %d failed!", key); - return -1; + return rv; } @@ -415,7 +415,7 @@ err_exit(s, "shm_recvfrom : pthread_mutex_lock"); if (socket->queue == NULL) { - if (socket->key == -1) { + if (socket->key == 0) { socket->key = hashtable_alloc_key(hashtable); } else { @@ -457,7 +457,15 @@ mm_free(src.buf); return 0; } else { - return -1; + + if(rv == EBUS_TIMEOUT) { + // logger->error("shm_recvfrom failed, %s", bus_strerror(EBUS_TIMEOUT)); + return EBUS_TIMEOUT; + } else { + // logger->error(rv, "shm_recvfrom failed!"); + return rv; + } + } } -- Gitblit v1.8.0