fixed deadlock caused by wrong order in mutex lock

This commit is contained in:
csoler 2021-05-04 19:49:47 +02:00
parent 12e556c204
commit 8539dd503a

View File

@ -1028,12 +1028,18 @@ bool RsGxsNetTunnelService::receiveSearchRequest(unsigned char *search_request_d
max_allowed_hits = RS_GXS_NET_TUNNEL_MAX_ALLOWED_HITS_GROUP_SEARCH ; max_allowed_hits = RS_GXS_NET_TUNNEL_MAX_ALLOWED_HITS_GROUP_SEARCH ;
std::list<RsGxsGroupSummary> results ; std::list<RsGxsGroupSummary> results ;
RsNetworkExchangeService *service = nullptr;
RS_STACK_MUTEX(mGxsNetTunnelMtx); {
RS_STACK_MUTEX(mGxsNetTunnelMtx);
auto it = mSearchableServices.find(substring_sr->service) ; auto it = mSearchableServices.find(substring_sr->service) ;
if(it != mSearchableServices.end() && it->second->search(substring_sr->substring_match,results)) if(it != mSearchableServices.end())
service = it->second;
}
if(service != nullptr && service->search(substring_sr->substring_match,results))
{ {
RsGxsNetTunnelTurtleSearchGroupSummaryItem search_result_item ; RsGxsNetTunnelTurtleSearchGroupSummaryItem search_result_item ;