From aeaeda81cfe398081a7c1a5c287981c8df974aa2 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期一, 27 七月 2020 19:03:38 +0800
Subject: [PATCH] commit
---
demo/dgram_mod_req_rep | 0
src/queue/include/mem_pool.h | 15 +++++++++++++--
src/libshm_queue.a | 0
test_socket/dgram_mod_bus.c | 3 ++-
src/socket/dgram_mod_socket.c | 2 +-
test_socket/dgram_mod_bus | 0
test_socket/dgram_mod_req_rep | 0
demo/dgram_mod_survey | 0
demo/dgram_mod_bus.c | 28 +++++++++++++++++++++-------
test_socket/dgram_mod_survey | 0
10 files changed, 37 insertions(+), 11 deletions(-)
diff --git a/demo/dgram_mod_bus.c b/demo/dgram_mod_bus.c
index bddc7d5..1c6268d 100644
--- a/demo/dgram_mod_bus.c
+++ b/demo/dgram_mod_bus.c
@@ -1,13 +1,21 @@
#include "dgram_mod_socket.h"
#include "shm_mm.h"
#include "usg_common.h"
+#include "mm.h"
-void server(int port) {
- void *socket = dgram_mod_open_socket();
- dgram_mod_bind(socket, port);
+
+
+void server(int port, bool restart) {
+ void * server_socket = dgram_mod_open_socket();
+
+ if(restart) {
+ dgram_mod_force_bind(server_socket, port);
+ } else {
+ dgram_mod_bind(server_socket, port);
+ }
+
- dgram_mod_start_bus(socket);
-
+ dgram_mod_start_bus(server_socket);
}
@@ -68,14 +76,20 @@
shm_init(512);
int port;
if (argc < 3) {
- fprintf(stderr, "Usage: reqrep %s|%s <PORT> ...\n", "server", "client");
+ fprintf(stderr, "Usage: %s %s|%s <PORT> ...\n", argv[0], "server", "client");
return 1;
}
port = atoi(argv[2]);
if (strcmp("server", argv[1]) == 0) {
- server(port);
+ if(argc >= 4 && strcmp("restart", argv[3]) == 0) {
+ server(port, true);
+ }
+ else{
+ server(port, false);
+ }
+
}
if (strcmp("client", argv[1]) == 0)
diff --git a/demo/dgram_mod_req_rep b/demo/dgram_mod_req_rep
index 6b03fdf..ed8fe41 100755
--- a/demo/dgram_mod_req_rep
+++ b/demo/dgram_mod_req_rep
Binary files differ
diff --git a/demo/dgram_mod_survey b/demo/dgram_mod_survey
index a3765fc..00bf41d 100755
--- a/demo/dgram_mod_survey
+++ b/demo/dgram_mod_survey
Binary files differ
diff --git a/src/libshm_queue.a b/src/libshm_queue.a
index 56836b6..1e2bd99 100644
--- a/src/libshm_queue.a
+++ b/src/libshm_queue.a
Binary files differ
diff --git a/src/queue/include/mem_pool.h b/src/queue/include/mem_pool.h
index d5a4110..72ad5b7 100644
--- a/src/queue/include/mem_pool.h
+++ b/src/queue/include/mem_pool.h
@@ -40,16 +40,27 @@
// T* tptr;
hashtable_t *hashtable = mm_get_hashtable();
ptr = hashtable_get(hashtable, key);
-printf("mem_pool_malloc_by_key malloc before %d, %p\n", key, ptr);
+// printf("mem_pool_malloc_by_key malloc before %d, %p\n", key, ptr);
if(ptr == NULL || ptr == (void *)1 ) {
ptr = mm_malloc(sizeof(T));
hashtable_put(hashtable, key, ptr);
new(ptr) T;
-printf("mem_pool_malloc_by_key use new %d, %p\n", key, ptr);
+// printf("mem_pool_malloc_by_key use new %d, %p\n", key, ptr);
}
return (T*)ptr;
}
+static inline void mem_pool_free_by_key(int key) {
+ void *ptr;
+ // T* tptr;
+ hashtable_t *hashtable = mm_get_hashtable();
+ ptr = hashtable_get(hashtable, key);
+ if(ptr != NULL) {
+ mm_free(ptr);
+ hashtable_remove(hashtable, key);
+ }
+}
+
static inline void mem_pool_free (void *ptr) {
mm_free(ptr);
// notify malloc
diff --git a/src/socket/dgram_mod_socket.c b/src/socket/dgram_mod_socket.c
index 1fa1303..5a7a0b7 100644
--- a/src/socket/dgram_mod_socket.c
+++ b/src/socket/dgram_mod_socket.c
@@ -49,7 +49,7 @@
subscripter_set = map_iter->second;
delete subscripter_set;
}
- delete topic_sub_map;
+ mem_pool_free_by_key(BUS_MAP_KEY);
}
diff --git a/test_socket/dgram_mod_bus b/test_socket/dgram_mod_bus
index 3e8dd52..b5eccd6 100755
--- a/test_socket/dgram_mod_bus
+++ b/test_socket/dgram_mod_bus
Binary files differ
diff --git a/test_socket/dgram_mod_bus.c b/test_socket/dgram_mod_bus.c
index 86e49a7..1c6268d 100644
--- a/test_socket/dgram_mod_bus.c
+++ b/test_socket/dgram_mod_bus.c
@@ -2,7 +2,8 @@
#include "shm_mm.h"
#include "usg_common.h"
#include "mm.h"
-
+
+
void server(int port, bool restart) {
void * server_socket = dgram_mod_open_socket();
diff --git a/test_socket/dgram_mod_req_rep b/test_socket/dgram_mod_req_rep
index bbe11f8..29f0599 100755
--- a/test_socket/dgram_mod_req_rep
+++ b/test_socket/dgram_mod_req_rep
Binary files differ
diff --git a/test_socket/dgram_mod_survey b/test_socket/dgram_mod_survey
index 03db8ff..48db086 100755
--- a/test_socket/dgram_mod_survey
+++ b/test_socket/dgram_mod_survey
Binary files differ
--
Gitblit v1.8.0