|
@@ -434,6 +434,8 @@ EmbeddedNetworkController::EmbeddedNetworkController(Node *node,const char *dbPa
|
|
_db(dbPath,this),
|
|
_db(dbPath,this),
|
|
_node(node)
|
|
_node(node)
|
|
{
|
|
{
|
|
|
|
+ if ((dbPath[0] == '-')&&(dbPath[1] == 0))
|
|
|
|
+ _startThreads(); // start threads now in Central harnessed mode
|
|
}
|
|
}
|
|
|
|
|
|
EmbeddedNetworkController::~EmbeddedNetworkController()
|
|
EmbeddedNetworkController::~EmbeddedNetworkController()
|
|
@@ -1721,4 +1723,18 @@ void EmbeddedNetworkController::_request(
|
|
_sender->ncSendConfig(nwid,requestPacketId,identity.address(),*(nc.get()),metaData.getUI(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_VERSION,0) < 6);
|
|
_sender->ncSendConfig(nwid,requestPacketId,identity.address(),*(nc.get()),metaData.getUI(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_VERSION,0) < 6);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void EmbeddedNetworkController::_startThreads()
|
|
|
|
+{
|
|
|
|
+ Mutex::Lock _l(_threads_m);
|
|
|
|
+ if (_threads.size() == 0) {
|
|
|
|
+ long hwc = (long)std::thread::hardware_concurrency();
|
|
|
|
+ if (hwc < 1)
|
|
|
|
+ hwc = 1;
|
|
|
|
+ else if (hwc > 16)
|
|
|
|
+ hwc = 16;
|
|
|
|
+ for(long i=0;i<hwc;++i)
|
|
|
|
+ _threads.push_back(Thread::start(this));
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
} // namespace ZeroTier
|
|
} // namespace ZeroTier
|