diff --git a/http_server/dap_http_simple.c b/http_server/dap_http_simple.c
index 90a35f30af198821473ba5c5172eed7a9b382d8c..4d9e29d53563bba376ff5117ee654841f4f79c44 100644
--- a/http_server/dap_http_simple.c
+++ b/http_server/dap_http_simple.c
@@ -73,24 +73,30 @@ user_agents_item_t *user_agents_list = NULL;
 static struct ev_loop* http_simple_loop;
 static ev_async async_watcher_http_simple;
 static pthread_mutex_t mutex_on_queue_http_response = PTHREAD_MUTEX_INITIALIZER;
+static pthread_t http_simple_loop_thread;
 
 // uint64_t s_TTL_session_key=3600;
 
 int dap_http_simple_module_init()
 {
-    pthread_mutex_init(&mutex_on_queue_http_response, NULL);
     http_simple_loop = ev_loop_new(0);
 
     TAILQ_INIT(&tailq_head);
 
-    pthread_t thread;
     ev_async_init(&async_watcher_http_simple, async_control_proc);
     ev_async_start(http_simple_loop, &async_watcher_http_simple);
-    pthread_create(&thread, NULL, loop_http_simple_proc, NULL);
+    pthread_create(&http_simple_loop_thread, NULL, loop_http_simple_proc, NULL);
 
     return 0;
 }
 
+void dap_http_simple_module_deinit(void)
+{
+    ev_async_stop(http_simple_loop, &async_watcher_http_simple);
+    pthread_mutex_destroy(&mutex_on_queue_http_response);
+    pthread_join(http_simple_loop_thread, NULL);
+    ev_loop_destroy(http_simple_loop);
+}
 
 static void async_control_proc (EV_P_ ev_async *w, int revents)
 {
diff --git a/test/http_server/dap_http_simple_test.c b/test/http_server/dap_http_simple_test.c
index 4808c422989755d961b99c1b9a90571977b88985..ebb0e88395cb1684120622bafbef1f2964abdd7e 100644
--- a/test/http_server/dap_http_simple_test.c
+++ b/test/http_server/dap_http_simple_test.c
@@ -1,7 +1,7 @@
 #include "dap_http_simple_test.h"
 #include "dap_http_simple.c"
 
-static void test_init_deinit()
+static void test_user_agent_support()
 {
     dap_http_simple_set_supported_user_agents("DapVpn/2.2", "SecondVpn/3.3", NULL);
 
@@ -28,8 +28,15 @@ static void test_init_deinit()
     _free_user_agents_list();
 }
 
+void dap_http_simple_test_init_deinit()
+{
+    dap_http_simple_module_init();
+    dap_http_simple_module_deinit();
+}
+
 void dap_http_http_simple_test_run()
 {
     dap_print_module_name("dap_http_http_simple_test");
-    test_init_deinit();
+    test_user_agent_support();
+    dap_http_simple_test_init_deinit();
 }