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/logger_factory.cpp | 11 ---
test/test_assert.cpp | 18 ++++++
src/CMakeLists.txt | 75 ++++++++++++------------
CMakeLists.txt | 4
src/socket/shm_socket.cpp | 19 ++++++
test/CMakeLists.txt | 9 +++
src/logger_factory.h | 1
7 files changed, 85 insertions(+), 52 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7d9971d..8f59922 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,8 +9,8 @@
# control where the static and shared libraries are built so that on windows
# we don't need to tinker with the path to run the executable
-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")
# set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
#option(BUILD_SHARED_LIBS "Build using shared libraries" ON)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index f3698d9..f6202ca 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -5,8 +5,9 @@
# to the source code
configure_file(bus_config.h.in bus_config.h)
-add_library(shm_queue
- ./logger_factory.cpp
+
+list(APPEND _SOURCES_
+./logger_factory.cpp
./socket/bus_server_socket.cpp
./socket/bus_server_socket_wrapper.cpp
./socket/shm_stream_mod_socket.cpp
@@ -26,12 +27,12 @@
./shm/shm_mm_wrapper.cpp
./shm/mm.cpp
./shm/hashtable.cpp
+)
- )
-target_include_directories(shm_queue PUBLIC
- ${EXTRA_INCLUDES}
- )
+add_library(shm_queue ${_SOURCES_})
+
+target_include_directories(shm_queue PUBLIC ${EXTRA_INCLUDES} )
target_include_directories(shm_queue PUBLIC
${PROJECT_BINARY_DIR}/src
@@ -48,38 +49,36 @@
# install rules
install(TARGETS shm_queue DESTINATION lib)
install(FILES
- ./socket/socket_def.h
-./socket/bus_server_socket.h
-./socket/shm_socket.h
-./socket/shm_stream_mod_socket.h
-./socket/shm_mod_socket.h
-./socket/bus_server_socket_wrapper.h
-./psem.h
-./key_def.h
-./time_util.h
-./futex_sem.h
-./bus_error.h
-./bus_def.h
-./logger_factory.h
-./queue/linked_lock_free_queue.h
-./queue/array_lock_free_queue.h
-./queue/shm_queue.h
-./queue/array_lock_free_sem_queue.h
-./queue/lock_free_queue.h
-./svsem.h
-./net/net_conn_pool.h
-./net/net_mod_socket.h
-./net/net_mod_server_socket_wrapper.h
-./net/net_mod_socket_io.h
-./net/net_mod_server_socket.h
-./net/net_mod_socket_wrapper.h
-./shm/hashtable.h
-./shm/mem_pool.h
-./shm/mm.h
-./shm/shm_mm_wrapper.h
-./shm/shm_allocator.h
-
-
+ ./socket/socket_def.h
+ ./socket/bus_server_socket.h
+ ./socket/shm_socket.h
+ ./socket/shm_stream_mod_socket.h
+ ./socket/shm_mod_socket.h
+ ./socket/bus_server_socket_wrapper.h
+ ./psem.h
+ ./key_def.h
+ ./time_util.h
+ ./futex_sem.h
+ ./bus_error.h
+ ./bus_def.h
+ ./logger_factory.h
+ ./queue/linked_lock_free_queue.h
+ ./queue/array_lock_free_queue.h
+ ./queue/shm_queue.h
+ ./queue/array_lock_free_sem_queue.h
+ ./queue/lock_free_queue.h
+ ./svsem.h
+ ./net/net_conn_pool.h
+ ./net/net_mod_socket.h
+ ./net/net_mod_server_socket_wrapper.h
+ ./net/net_mod_socket_io.h
+ ./net/net_mod_server_socket.h
+ ./net/net_mod_socket_wrapper.h
+ ./shm/hashtable.h
+ ./shm/mem_pool.h
+ ./shm/mm.h
+ ./shm/shm_mm_wrapper.h
+ ./shm/shm_allocator.h
DESTINATION include)
diff --git a/src/logger_factory.cpp b/src/logger_factory.cpp
index 0955fc2..001e7cc 100644
--- a/src/logger_factory.cpp
+++ b/src/logger_factory.cpp
@@ -23,13 +23,4 @@
return logger;
}
-void LoggerFactory::error(int s) {
- Logger* logger = LoggerFactory::getLogger();
- if(s == EBUS_TIMEOUT) {
- logger->error("shm_recvfrom failed, %s", bus_strerror(EBUS_TIMEOUT));
-
- } else {
- logger->error(s, "shm_recvfrom failed!");
-
- }
-}
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/logger_factory.h b/src/logger_factory.h
index 37eaefd..e736e64 100644
--- a/src/logger_factory.h
+++ b/src/logger_factory.h
@@ -10,7 +10,6 @@
public:
static Logger* getLogger();
- static void error(int s);
};
#endif
diff --git a/src/socket/shm_socket.cpp b/src/socket/shm_socket.cpp
index dad77b8..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,6 +551,18 @@
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);
@@ -556,7 +573,7 @@
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);
}
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 18e1408..1ac1383 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -30,5 +30,14 @@
${EXTRA_INCLUDES}
)
+add_executable(test_assert test_assert.cpp )
+target_link_libraries(test_assert PRIVATE ${EXTRA_LIBS} )
+target_include_directories(test_assert PRIVATE
+ "${PROJECT_BINARY_DIR}"
+ ${EXTRA_INCLUDES}
+ )
+
+
+
diff --git a/test/test_assert.cpp b/test/test_assert.cpp
new file mode 100644
index 0000000..608424d
--- /dev/null
+++ b/test/test_assert.cpp
@@ -0,0 +1,18 @@
+
+#include <iostream>
+// uncomment to disable assert()
+// #define NDEBUG
+#include <cassert>
+
+// Use (void) to silent unused warnings.
+#define assertm(exp, msg) assert(((void)msg, exp))
+
+int main()
+{
+ assert(2+2==4);
+ std::cout << "Execution continues past the first assert\n";
+ // assertm(2+2==5, "There are five lights");
+ // std::cout << "Execution continues past the second assert\n";
+ assert((2*2==4) && "Yet another way to add assert message");
+ assert(("There are five lights", 2 + 2 == 5));
+}
\ No newline at end of file
--
Gitblit v1.8.0