From 8e8a7a018f5724e3f645ff6186879e6dcc195c94 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期六, 30 一月 2021 14:55:43 +0800 Subject: [PATCH] update --- src/socket/shm_socket.cpp | 47 ++++++++++++++++++++++++----------------------- 1 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/socket/shm_socket.cpp b/src/socket/shm_socket.cpp index 9a13a85..daa7f1a 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,16 @@ 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); + if(rv != 0) { + printf("_shm_sendandrecv_thread_local : %s\n", bus_strerror(rv)); + } + else if(rv == 0 ) { + assert( send_key == recv_key); + if(send_key != recv_key) { + err_exit(0, "_shm_sendandrecv_thread_local: send key expect to equal to recv key! send key =%d , recv key=%d", send_key, recv_key); + } + + } return rv; } else { return rv; @@ -546,39 +557,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 : %s\n", bus_strerror(rv)); + } + else if(rv == 0 ) { + assert( send_key == recv_key); + if(send_key != recv_key) { + err_exit(0, "_shm_sendandrecv_alloc_new: send key expect 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