From a2236fffa265342454430000a7ff0d710807ebb9 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期四, 30 九月 2021 13:35:38 +0800
Subject: [PATCH] SendReply use BHFree
---
src/socket/shm_socket.cpp | 29 ++++++-----------------------
1 files changed, 6 insertions(+), 23 deletions(-)
diff --git a/src/socket/shm_socket.cpp b/src/socket/shm_socket.cpp
index dc6d752..1912772 100644
--- a/src/socket/shm_socket.cpp
+++ b/src/socket/shm_socket.cpp
@@ -46,7 +46,7 @@
void *tmp_ptr = hashtable_get(hashtable, key);
if (tmp_ptr == NULL || tmp_ptr == (void *)1 ) {
- queue = new LockFreeQueue<shm_packet_t>(32);
+ queue = new LockFreeQueue<shm_packet_t>(LOCK_FREE_Q_DEFAULT_SIZE);
hashtable_put(hashtable, key, (void *)queue);
return queue;
} else if(force) {
@@ -76,7 +76,6 @@
int s, type;
pthread_mutexattr_t mtxAttr;
- logger->debug("shm_socket_open\n");
// shm_socket_t *socket = (shm_socket_t *)calloc(1, sizeof(shm_socket_t));
shm_socket_t *sockt = new shm_socket_t;
sockt->socket_type = socket_type;
@@ -167,20 +166,8 @@
return 0;
}
-int shm_socket_bind_proc_id(shm_socket_t *sockt, const char *buf, int len) {
- strncpy(sockt->proc_id, buf, len > MAX_STR_LEN ? MAX_STR_LEN : len);
-
- return 0;
-}
-
int shm_socket_get_key(shm_socket_t *sockt){
return sockt->key;
-}
-
-int shm_socket_get_procid(shm_socket_t *sockt, char *buf, int len) {
- strncpy(buf, sockt->proc_id, len);
-
- return 0;
}
// 鐭繛鎺ユ柟寮忓彂閫�
@@ -231,7 +218,7 @@
if (rv != 0) {
if(rv == ETIMEDOUT){
- logger->debug("%d shm_recvandsend failed %s", shm_socket_get_key(sockt), bus_strerror(EBUS_TIMEOUT));
+ logger->error("%d shm_recvandsend failed %s", shm_socket_get_key(sockt), bus_strerror(EBUS_TIMEOUT));
return EBUS_TIMEOUT;
}
@@ -275,7 +262,7 @@
if (rv != 0) {
- logger->debug("%d shm_recvfrom failed %s", shm_socket_get_key(sockt), bus_strerror(rv));
+ logger->error("%d shm_recvfrom failed %s", shm_socket_get_key(sockt), bus_strerror(rv));
return rv;
}
@@ -368,7 +355,6 @@
recvbufIter = sockt->recvbuf.find(uuid);
if(recvbufIter != sockt->recvbuf.end()) {
// 鍦ㄧ紦瀛橀噷鏌ュ埌浜哢UID鍖归厤鎴愬姛鐨�
-logger->debug("get from recvbuf: %s", uuid.c_str());
recvpak = recvbufIter->second;
sockt->recvbuf.erase(recvbufIter);
goto LABLE_SUC;
@@ -382,11 +368,10 @@
return EBUS_TIMEOUT;
}
- logger->debug("%d shm_recvfrom failed %s", shm_socket_get_key(sockt), bus_strerror(rv));
+ logger->error("%d shm_recvfrom failed %s", shm_socket_get_key(sockt), bus_strerror(rv));
return rv;
}
-logger->debug("send uuid:%s, recv uuid: %s", uuid.c_str(), recvpak.uuid);
if(strlen(recvpak.uuid) == 0) {
continue;
} else if (strncmp(uuid.c_str(), recvpak.uuid, sizeof(recvpak.uuid)) == 0) {
@@ -465,16 +450,15 @@
tryn--;
recvbufIter = tmp_socket->recvbuf2.find(key);
if(recvbufIter != tmp_socket->recvbuf2.end()) {
- // 鍦ㄧ紦瀛橀噷鏌ュ埌浜唊ey鍖归厤鎴愬姛鐨�
recvpak = recvbufIter->second;
- tmp_socket->recvbuf2.erase(recvbufIter);
+ tmp_socket->recvbuf2.erase(key);
goto LABLE_SUC;
}
rv = shm_recvpakfrom(tmp_socket, &recvpak, timeout, flags);
if (rv != 0) {
- logger->debug("%d shm_recvfrom failed %s", shm_socket_get_key(tmp_socket), bus_strerror(rv));
+ logger->error("%d shm_recvfrom failed %s", shm_socket_get_key(tmp_socket), bus_strerror(rv));
return rv;
}
@@ -484,7 +468,6 @@
} else {
// 绛旈潪鎵�闂紝鏀惧埌缂撳瓨閲�
tmp_socket->recvbuf2.insert({recvpak.key, recvpak});
- exit(0);
continue;
}
}
--
Gitblit v1.8.0