Device: goOnline: Refactor network locking

Only lock known networks.
master
Jonathan Schwartz 2026-01-22 21:46:51 +00:00 committed by Kyle Schwarz
parent 68ebb6dae4
commit 0e55101a16
1 changed files with 17 additions and 14 deletions

View File

@ -563,8 +563,12 @@ bool Device::goOnline() {
if(supportsNetworkMutex()) { if(supportsNetworkMutex()) {
assignedClientId = com->getClientIDSync(); assignedClientId = com->getClientIDSync();
if(assignedClientId) { if(assignedClientId) {
std::set<Network::NetID> nets;
for(auto&& net : getSupportedTXNetworks()) {
nets.insert(net.getNetID());
}
// firmware supports clientid/mutex // firmware supports clientid/mutex
networkMutexCallbackHandle = lockAllNetworks(std::numeric_limits<uint32_t>::max(), std::numeric_limits<uint32_t>::max(), NetworkMutexType::Shared, [this](std::shared_ptr<Message> message) { networkMutexCallbackHandle = lockNetworks(nets, std::numeric_limits<uint32_t>::max(), std::numeric_limits<uint32_t>::max(), NetworkMutexType::Shared, [this](std::shared_ptr<Message> message) {
auto netMutexMsg = std::static_pointer_cast<NetworkMutexMessage>(message); auto netMutexMsg = std::static_pointer_cast<NetworkMutexMessage>(message);
if(netMutexMsg->networks.size() && netMutexMsg->event.has_value()) { if(netMutexMsg->networks.size() && netMutexMsg->event.has_value()) {
switch(*netMutexMsg->event) { switch(*netMutexMsg->event) {
@ -579,8 +583,7 @@ bool Device::goOnline() {
} }
} }
} }
} });
);
} }
} }