mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-01-31 00:23:58 +00:00
Start threads in Central harnessed mode.
This commit is contained in:
parent
f39e2e2a53
commit
283e8d5bc0
@ -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
|
||||||
|
@ -115,20 +115,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
void _request(uint64_t nwid,const InetAddress &fromAddr,uint64_t requestPacketId,const Identity &identity,const Dictionary<ZT_NETWORKCONFIG_METADATA_DICT_CAPACITY> &metaData);
|
void _request(uint64_t nwid,const InetAddress &fromAddr,uint64_t requestPacketId,const Identity &identity,const Dictionary<ZT_NETWORKCONFIG_METADATA_DICT_CAPACITY> &metaData);
|
||||||
|
void _startThreads();
|
||||||
inline void _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));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// These init objects with default and static/informational fields
|
// These init objects with default and static/informational fields
|
||||||
inline void _initMember(nlohmann::json &member)
|
inline void _initMember(nlohmann::json &member)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user