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