From 8a1a19a41596a44bacef0ab26ffaa88675e402e0 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期四, 16 十二月 2021 11:35:04 +0800
Subject: [PATCH] stash

---
 src/nng_wrap.cpp |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/nng_wrap.cpp b/src/nng_wrap.cpp
index e400da7..85c555e 100644
--- a/src/nng_wrap.cpp
+++ b/src/nng_wrap.cpp
@@ -613,11 +613,7 @@
     return (w);
 }
 
-static constexpr int PARALLEL = 62;
-static struct work* works_local[PARALLEL]{};
-static struct work* works_remote[PARALLEL]{};
-
-static int create_server(nng_socket* sock, const string& url, work** works){
+static int create_server(nng_socket* sock, const string& url, const int count){
     TAG;
     if (sock->id > 0) return 0;
 
@@ -627,22 +623,26 @@
         PRNTVITAG(url);
         return rv;
     }
-    for (int i = 0; i < PARALLEL; i++) {
+
+    work** works = (work**)malloc(sizeof(work*) * count);
+    for (int i = 0; i < count; i++) {
         works[i] = alloc_work(*sock);
     }
 
     remove_exist(url);
     rv = nng_listen(*sock, url.c_str(), NULL, 0);
     if (rv < 0){
+        free(works);
         PRNTVITAG("create_server nng_listen failed");
         PRNTVITAG(url);
         return rv;
     }
 
-    for (int i = 0; i < PARALLEL; i++) {
+    for (int i = 0; i < count; i++) {
         server_cb(works[i]); // this starts them going (INIT state)
     }
 
+    free(works);
     return 0;
 }
 
@@ -660,12 +660,12 @@
         ipc = url;
     }
     reply_.url_ = ipc;
-    if(create_server(&reply_.sock_local_, ipc, works_local) != 0) return -1;
+    if(create_server(&reply_.sock_local_, ipc, 62) != 0) return -1;
 
     if (port > 0){
         reply_.port_ = port;
         ipc = "tcp://0.0.0.0:" + to_string(port);
-        if(create_server(&reply_.sock_remote_, ipc, works_remote) != 0) return -1;
+        if(create_server(&reply_.sock_remote_, ipc, 62) != 0) return -1;
     }else {
         reply_.sock_remote_.id = numeric_limits<int32_t>::max();
     }

--
Gitblit v1.8.0