From 91ea20d03ebb5a8d20150d3ecc28a13c51ce93f1 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期五, 22 一月 2021 19:17:06 +0800
Subject: [PATCH] update

---
 test_socket/bus_test.cpp      |   24 ++++++++++++++++++++----
 src/svsem.cpp                 |    2 +-
 src/socket/shm_mod_socket.cpp |    4 ++--
 CMakeLists.txt                |    4 +---
 4 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3b1e4b4..f23dbf8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,15 +13,13 @@
 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
 # set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
 
-if (CMAKE_BUILD_TYPE EQUAL "Release")
 #option(BUILD_SHARED_LIBS "Build using shared libraries" ON)
-endif()
 
 option(BUILD_DOC "Build doc" OFF)
 
 
 list(APPEND EXTRA_INCLUDES "${PROJECT_SOURCE_DIR}/include/usgcommon")
-list(APPEND EXTRA_LIBS ${PROJECT_SOURCE_DIR}/lib/libusgcommon.a pthread rt)
+list(APPEND EXTRA_LIBS ${PROJECT_SOURCE_DIR}/lib/libusgcommon.a rt pthread )
 
 
 # build api doc
diff --git a/src/socket/shm_mod_socket.cpp b/src/socket/shm_mod_socket.cpp
index 54effbe..6501f1e 100644
--- a/src/socket/shm_mod_socket.cpp
+++ b/src/socket/shm_mod_socket.cpp
@@ -69,12 +69,12 @@
 
 // 鎺ュ彈淇℃伅瓒呮椂杩斿洖銆� @sec 绉� 锛� @nsec 绾崇
 int ShmModSocket::recvfrom_timeout( void **buf, int *size, int *key, struct timespec *timeout) {
-	int rv =  shm_recvfrom(shm_socket, buf, size, key, timeout, 0);
+	int rv =  shm_recvfrom(shm_socket, buf, size, key, timeout, BUS_TIMEOUT_FLAG);
  	return rv;
 }
 
 int ShmModSocket::recvfrom_nowait( void **buf, int *size, int *key){
-	int rv =  shm_recvfrom(shm_socket, buf, size, key, NULL, (int)BUS_NOWAIT_FLAG);
+	int rv =  shm_recvfrom(shm_socket, buf, size, key, NULL, BUS_NOWAIT_FLAG);
 	// logger->error(rv, "ShmModSocket::recvfrom_nowait failed!");
   return rv;
 }
diff --git a/src/svsem.cpp b/src/svsem.cpp
index 82390b6..b874fdb 100644
--- a/src/svsem.cpp
+++ b/src/svsem.cpp
@@ -96,7 +96,7 @@
   sops.sem_op = -1;
   sops.sem_flg = IPC_NOWAIT | 0;
 
-  while (semop(semid, &sops, 1) == -1)
+  if (semop(semid, &sops, 1) == -1)
     if (errno != EINTR) {
       // err_msg(errno, "svsem_dec_nowait");
       return errno;
diff --git a/test_socket/bus_test.cpp b/test_socket/bus_test.cpp
index b815476..a6d741e 100644
--- a/test_socket/bus_test.cpp
+++ b/test_socket/bus_test.cpp
@@ -24,15 +24,31 @@
   void *recvbuf;
   int size;
   int key;
+  int rv;
   ShmModSocket *sk = (ShmModSocket *)skptr;
-  while ( true) {
-    sk->recvfrom( &recvbuf, &size, &key);
-    printf("鏀跺埌璁㈤槄娑堟伅:%s\n", recvbuf);
-    free(recvbuf);
+printf("run_recv\n");
+  struct timespec timeout = {2, 0};
+  while (true) {
+    printf("run_recv before\n");
+
+    rv = sk->recvfrom_timeout( &recvbuf, &size, &key, &timeout);
+    if(rv == 0) {
+      printf("鏀跺埌璁㈤槄娑堟伅:%s\n", recvbuf);
+      free(recvbuf);
+    } else {
+      printf("recvfrom error %d\n", rv);
+    }
+     
   }
+  return NULL;
   
 }
 
+void client2(int key) {
+  ShmModSocket *sk = new ShmModSocket();
+  run_recv((void *)sk);
+}
+
 void client(int key) {
   ShmModSocket *sk = new ShmModSocket();
   

--
Gitblit v1.8.0