From 1b94589dcb8d497d2d8a208efd61a54631f6b84e Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期三, 23 十二月 2020 16:08:33 +0800
Subject: [PATCH] update

---
 src/socket/bus_server_socket.c |   36 ++++++++++++++++++------------------
 1 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/socket/bus_server_socket.c b/src/socket/bus_server_socket.c
index 8c50d37..0f4e52e 100644
--- a/src/socket/bus_server_socket.c
+++ b/src/socket/bus_server_socket.c
@@ -60,15 +60,19 @@
 
 
 BusServerSocket::BusServerSocket() {
+	logger->debug("BusServerSocket Init");
 	shm_socket = shm_open_socket(SHM_SOCKET_DGRAM);
 	topic_sub_map = NULL;
+
 }
 
 BusServerSocket::~BusServerSocket() {
 	SHMKeySet *subscripter_set;
 	SHMTopicSubMap::iterator map_iter;
 
+	logger->debug("BusServerSocket destory 1");
 	stop();
+	logger->debug("BusServerSocket destory 2");
 	 
 	if(topic_sub_map != NULL) {
 		for (map_iter = topic_sub_map->begin(); map_iter != topic_sub_map->end(); map_iter++) {
@@ -83,6 +87,7 @@
 		mem_pool_free_by_key(BUS_MAP_KEY);
 	}
 	shm_close_socket(shm_socket);
+	logger->debug("BusServerSocket destory 3");
 }
 
 
@@ -109,14 +114,13 @@
  
 	run_pubsub_proxy();
 	// 杩涚▼鍋滄鐨勬椂鍊欙紝棰勭暀3绉掕祫婧愬洖鏀剁殑鏃堕棿銆傚惁鍒欙紝浼氬彂鐢熻皟鐢╟lose鐨勬椂鍊欙紝鍏变韩鍐呭瓨鐨勮祫婧愯繕娌℃潵寰楀強鍥炴敹杩涚▼灏遍��鍑轰簡
-	sleep(3);
 	return 0;
 }
 
 
 int  BusServerSocket::stop(){
 	int ret;
-	 
+	logger->debug("====>stopping");
 	if( shm_socket->key <= 0) {
 		return -1;
 	}
@@ -127,15 +131,11 @@
 	head.topic_size = 0;
 	head.content_size = 0;
 
-	void *recv_buf;
-	int recv_size;
-
 	void *buf;
 	int size = ShmModSocket::get_bus_sendbuf(head, NULL, 0, NULL,  0, &buf);
 	if(size > 0) {
-		ret = shm_sendandrecv(shm_socket, buf, size, shm_socket->key, &recv_buf, &recv_size);
+		ret = shm_sendandrecv_unsafe(shm_socket, buf, size, shm_socket->key, NULL, NULL);
 		free(buf);
-		free(recv_buf);
 		return ret;
 	} else {
 		return -1;
@@ -260,7 +260,8 @@
         topic =  strtok(NULL, topic_delim);
 		  }
 
-		} else if(strcmp(action, "desub") == 0) {
+		} 
+		else if(strcmp(action, "desub") == 0) {
 // printf("desub topic=%s,%s,%d\n", topics, trim(topics, 0), strcmp(trim(topics, 0), ""));
 			if(strcmp(trim(topics, 0), "") == 0) {
 				// 鍙栨秷鎵�鏈夎闃�
@@ -274,27 +275,26 @@
 			  }
 			}
 			
-		} else if(strcmp(action, "pub") == 0) {
+		} 
+		else if(strcmp(action, "pub") == 0) {
 			 content = topics + head.topic_size;
 			_proxy_pub(topics, content, head.content_size, key);
-		}  else if(strcmp(action, "stop") == 0) {
-			logger->info( "Stopping Bus...");
-			 // snprintf(resp_buf, 128, "%sstop_finished%s%s%s%s", ACTION_LIDENTIFIER, ACTION_RIDENTIFIER, TOPIC_LIDENTIFIER, "", TOPIC_RIDENTIFIER);
-			shm_sendto(shm_socket, "stop_finished", strlen( "stop_finished") +1, key);
 
+		}  
+		else if(strcmp(action, "stop") == 0) {
+			
 			free(buf);
 			break;
 		} else {
 			logger->error( "BusServerSocket::run_pubsub_proxy : unrecognized action %s", action);
 		}
 		
-		// free(action);
-		// free(topics);
-		// } else {
-		// 	logger->error( "BusServerSocket::run_pubsub_proxy : incorrect format msg");
-		// }
 		free(buf);
 	}
+
+	logger->info( "Stopping Bus...");
+	shm_sendto(shm_socket, "stop_finished", strlen( "stop_finished") +1, key);
+
 	return NULL;
 }
 

--
Gitblit v1.8.0