Sfoglia il codice sorgente

add INCOMING_PACKET_CONCURRENCY environment variable to be able to specify max threads for receive in controller

Grant Limberg 6 anni fa
parent
commit
4a89729529
1 ha cambiato i file con 11 aggiunte e 1 eliminazioni
  1. 11 1
      service/OneService.cpp

+ 11 - 1
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;