diff options
-rw-r--r-- | service/OneService.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/service/OneService.cpp b/service/OneService.cpp index 1351cbfb..2223b9a8 100644 --- a/service/OneService.cpp +++ b/service/OneService.cpp @@ -607,7 +607,17 @@ public: _ports[1] = 0; _ports[2] = 0; - _incomingPacketConcurrency = std::max((unsigned long)1,std::min((unsigned long)16,(unsigned long)std::thread::hardware_concurrency())); + char *envPool = std::getenv("INCOMING_PACKET_CONCURRENCY"); + if (envPool != NULL) { + int tmp = atoi(envPool); + if (tmp > 0) { + _incomingPacketConcurrency = tmp; + } else { + _incomingPacketConcurrency = std::max((unsigned long)1,std::min((unsigned long)16,(unsigned long)std::thread::hardware_concurrency())); + } + } else { + _incomingPacketConcurrency = std::max((unsigned long)1,std::min((unsigned long)16,(unsigned long)std::thread::hardware_concurrency())); + } for(long t=0;t<_incomingPacketConcurrency;++t) { _incomingPacketThreads.push_back(std::thread([this]() { OneServiceIncomingPacket *pkt = nullptr; |