Skip to content
Snippets Groups Projects
Commit a17b0afb authored by 邹毅贤's avatar 邹毅贤
Browse files

Merge pull request #739 from skyao/improve/map-access-concurreny

Imp: Improve map access concurrency
parent 6b7d6988
No related branches found
No related tags found
No related merge requests found
......@@ -98,7 +98,10 @@ func (rpc *RPCStatus) GetSuccessiveRequestFailureCount() int32 {
// GetURLStatus get URL RPC status.
func GetURLStatus(url common.URL) *RPCStatus {
rpcStatus, _ := serviceStatistic.LoadOrStore(url.Key(), &RPCStatus{})
rpcStatus, found := serviceStatistic.Load(url.Key())
if !found {
rpcStatus, _ = serviceStatistic.LoadOrStore(url.Key(), &RPCStatus{})
}
return rpcStatus.(*RPCStatus)
}
......@@ -107,15 +110,13 @@ func GetMethodStatus(url common.URL, methodName string) *RPCStatus {
identifier := url.Key()
methodMap, found := methodStatistics.Load(identifier)
if !found {
methodMap = &sync.Map{}
methodStatistics.Store(identifier, methodMap)
methodMap, _ = methodStatistics.LoadOrStore(identifier, &sync.Map{})
}
methodActive := methodMap.(*sync.Map)
rpcStatus, found := methodActive.Load(methodName)
if !found {
rpcStatus = &RPCStatus{}
methodActive.Store(methodName, rpcStatus)
rpcStatus, _ = methodActive.LoadOrStore(methodName, &RPCStatus{})
}
status := rpcStatus.(*RPCStatus)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment