From dbf7fd6f620b86c382431ce10fd5fe3c5ddca955 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期四, 24 十二月 2020 14:10:44 +0800
Subject: [PATCH] update

---
 src/socket/shm_socket.c               |   15 ++++++++++-----
 src/bus_error.c                       |    3 ++-
 test_net_socket/test_net_mod_socket.c |    3 +--
 src/bus_error.h                       |    1 +
 src/socket/shm_mod_socket.c           |    3 +--
 5 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/src/bus_error.c b/src/bus_error.c
index d94e129..c2dd63a 100644
--- a/src/bus_error.c
+++ b/src/bus_error.c
@@ -14,7 +14,8 @@
 static char *_bus_errlist[_bus_nerr] = {
   "\0",
   "timeout",
-  "the other end is not inline"
+  "The other end is not inline",
+  "Key already in use"
 
 };
 
diff --git a/src/bus_error.h b/src/bus_error.h
index af7426a..79f98d6 100644
--- a/src/bus_error.h
+++ b/src/bus_error.h
@@ -7,6 +7,7 @@
 
 #define EBUS_TIMEOUT 1
 #define EBUS_CLOSED 2
+#define EBUS_KEY_INUSED 3
 
 extern int bus_errno;
 
diff --git a/src/socket/shm_mod_socket.c b/src/socket/shm_mod_socket.c
index 4c3938e..6e622a8 100644
--- a/src/socket/shm_mod_socket.c
+++ b/src/socket/shm_mod_socket.c
@@ -15,7 +15,7 @@
 }
 
 ShmModSocket::~ShmModSocket() {
-  logger->debug("Destory ShmModSocket...\n");
+  // logger->debug("Close ShmModSocket...\n");
 	struct timespec timeout = {1, 0};
 	if(bus_set != NULL) {
 		for(auto bus_iter = bus_set->begin(); bus_iter != bus_set->end(); bus_iter++) {
@@ -25,7 +25,6 @@
 	}
 
 	shm_close_socket(shm_socket);
-// printf("ShmModSocket  destory 4\n");	
 }
 
 int ShmModSocket::bind(int key) {
diff --git a/src/socket/shm_socket.c b/src/socket/shm_socket.c
index c75114d..ddc26fa 100644
--- a/src/socket/shm_socket.c
+++ b/src/socket/shm_socket.c
@@ -30,7 +30,8 @@
 static inline int  _shm_socket_check_key(shm_socket_t *socket) {
    void *tmp_ptr = mm_get_by_key(socket->key);
     if (tmp_ptr!= NULL && tmp_ptr != (void *)1 && !socket->force_bind ) {
-      logger->error("key %d has already been in used!", socket->key);
+      bus_errno = EBUS_KEY_INUSED;
+      logger->error("%s. key = %d ", bus_strerror(bus_errno), socket->key);
       return 0;
     }
     return 1;
@@ -112,7 +113,8 @@
   } else {
 
    if(!_shm_socket_check_key(socket)) {
-     return -1;
+     bus_errno = EBUS_KEY_INUSED;
+     return EBUS_KEY_INUSED;
    }
   }
 
@@ -202,7 +204,8 @@
     socket->key = hashtable_alloc_key(hashtable);
   } else {
     if(!_shm_socket_check_key(socket)) {
-      return -1;
+      bus_errno = EBUS_KEY_INUSED;
+      return EBUS_KEY_INUSED;
     }
   }
 
@@ -308,7 +311,8 @@
     } else {
 
      if(!_shm_socket_check_key(socket)) {
-        return -1;
+        bus_errno = EBUS_KEY_INUSED;
+        return EBUS_KEY_INUSED;
      }
 
     }
@@ -382,7 +386,8 @@
     } else {
 
       if(!_shm_socket_check_key(socket)) {
-        return -1;
+        bus_errno = EBUS_KEY_INUSED;
+        return EBUS_KEY_INUSED;
       }
     }
 
diff --git a/test_net_socket/test_net_mod_socket.c b/test_net_socket/test_net_mod_socket.c
index 2b2a56a..c5092e9 100644
--- a/test_net_socket/test_net_mod_socket.c
+++ b/test_net_socket/test_net_mod_socket.c
@@ -141,7 +141,6 @@
     sprintf(sendbuf, "RECEIVED  PORT %d NAME %s", remote_port, recvbuf);
     net_mod_socket_sendto(client, sendbuf, strlen(sendbuf) + 1, remote_port);
     free(recvbuf);
-    sleep(1000);
   }
 }
 
@@ -286,7 +285,7 @@
 
 void test_net_sendandrecv_threads(char *nodelist) {
 
-  int status, i = 0, processors = 4;
+  int status, i = 0, processors = 1;
   void *res[processors];
   // Targ *targs = (Targ *)calloc(processors, sizeof(Targ));
   Targ targs[processors];

--
Gitblit v1.8.0