remove duplicate ask and calculate ping before lock

This commit is contained in:
Frank 2021-04-06 12:45:25 +08:00
parent 2e63690125
commit c915170b58

View File

@ -1296,7 +1296,8 @@ var clientListAsksCmd = &cli.Command{
Usage: "List asks for top miners", Usage: "List asks for top miners",
Flags: []cli.Flag{ Flags: []cli.Flag{
&cli.BoolFlag{ &cli.BoolFlag{
Name: "by-ping", Name: "by-ping",
Usage: "sort by ping",
}, },
&cli.StringFlag{ &cli.StringFlag{
Name: "output-format", Name: "output-format",
@ -1445,23 +1446,18 @@ loop:
return return
} }
rt := time.Now()
ask, err := api.ClientQueryAsk(ctx, *mi.PeerId, miner) ask, err := api.ClientQueryAsk(ctx, *mi.PeerId, miner)
if err != nil { if err != nil {
return return
} }
pingDuration := time.Now().Sub(rt)
rt := time.Now()
_, err = api.ClientQueryAsk(ctx, *mi.PeerId, miner)
if err != nil {
return
}
atomic.AddInt64(&got, 1) atomic.AddInt64(&got, 1)
lk.Lock() lk.Lock()
asks = append(asks, QueriedAsk{ asks = append(asks, QueriedAsk{
Ask: ask, Ask: ask,
Ping: time.Now().Sub(rt), Ping: pingDuration,
}) })
lk.Unlock() lk.Unlock()
}(miner) }(miner)