From 29ed03b11b4d39f36f602ed7b2f73714214470ed Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期六, 30 一月 2021 14:40:16 +0800 Subject: [PATCH] update --- src/socket/shm_socket.cpp | 41 ++++++++++++++++++----------------------- 1 files changed, 18 insertions(+), 23 deletions(-) diff --git a/src/socket/shm_socket.cpp b/src/socket/shm_socket.cpp index 9a13a85..785eb4d 100644 --- a/src/socket/shm_socket.cpp +++ b/src/socket/shm_socket.cpp @@ -2,6 +2,7 @@ #include "hashtable.h" #include "logger_factory.h" #include <map> +#include <cassert> #include "bus_error.h" static Logger *logger = LoggerFactory::getLogger(); @@ -518,6 +519,10 @@ if ((rv = shm_sendto(tmp_socket, send_buf, send_size, send_key, timeout, flags)) == 0) { rv = shm_recvfrom(tmp_socket, recv_buf, recv_size, &recv_key, timeout, flags); +printf("======send key =%d , recv key=%d\n", send_key, recv_key); + assert( send_key == recv_key); + if(send_key != recv_key) + err_exit(0, "send key need to equal to recv key! send key =%d , recv key=%d", send_key, recv_key); return rv; } else { return rv; @@ -546,39 +551,29 @@ if ((rv = shm_sendto(tmp_socket, send_buf, send_size, send_key, timeout, flags)) == 0) { rv = shm_recvfrom(tmp_socket, recv_buf, recv_size, &recv_key, timeout, flags); + printf("======send key =%d , recv key=%d\n", send_key, recv_key); + + if(rv != 0) { + printf("_shm_sendandrecv_alloc_new shm_recvfrom : %s\n", bus_strerror(rv)); + } + else if(rv == 0 ) { + assert( send_key == recv_key); + if(send_key != recv_key) { + err_exit(0, "send key need to equal to recv key! send key =%d , recv key=%d", send_key, recv_key); + } + + } } shm_close_socket(tmp_socket); return rv; } - -// int shm_sendandrecv_unsafe(shm_socket_t *socket, const void *send_buf, -// const int send_size, const int send_key, void **recv_buf, -// int *recv_size, const struct timespec *timeout, int flags) { -// if (socket->socket_type != SHM_SOCKET_DGRAM) { -// logger->error( "shm_socket.shm_sendandrecv_unsafe : Can't invoke shm_sendandrecv method in a %d type socket " -// "which is not a SHM_SOCKET_DGRAM socket ", -// socket->socket_type); -// exit(1); -// } -// int recv_key; -// int rv; - -// if ((rv = shm_sendto(socket, send_buf, send_size, send_key, timeout, flags)) == 0) { -// rv = shm_recvfrom(socket, recv_buf, recv_size, &recv_key, timeout, flags); -// return rv; -// } else { -// return rv; -// } -// return -1; -// } - int shm_sendandrecv(shm_socket_t *socket, const void *send_buf, const int send_size, const int send_key, void **recv_buf, int *recv_size, const struct timespec *timeout, int flags) { - return _shm_sendandrecv_thread_local(socket, send_buf, send_size, send_key,recv_buf, recv_size, timeout, flags); + return _shm_sendandrecv_alloc_new(socket, send_buf, send_size, send_key,recv_buf, recv_size, timeout, flags); } -- Gitblit v1.8.0