repub needs Lock not RLock
This commit is contained in:
parent
e9d2223025
commit
831f8a499d
@ -24,14 +24,15 @@ func (mp *MessagePool) republishPendingMessages(ctx context.Context) error {
|
|||||||
ts := mp.curTs
|
ts := mp.curTs
|
||||||
|
|
||||||
baseFee, err := mp.api.ChainComputeBaseFee(context.TODO(), ts)
|
baseFee, err := mp.api.ChainComputeBaseFee(context.TODO(), ts)
|
||||||
if err != nil {
|
|
||||||
mp.curTsLk.RUnlock()
|
mp.curTsLk.RUnlock()
|
||||||
|
if err != nil {
|
||||||
return xerrors.Errorf("computing basefee: %w", err)
|
return xerrors.Errorf("computing basefee: %w", err)
|
||||||
}
|
}
|
||||||
baseFeeLowerBound := getBaseFeeLowerBound(baseFee, baseFeeLowerBoundFactor)
|
baseFeeLowerBound := getBaseFeeLowerBound(baseFee, baseFeeLowerBoundFactor)
|
||||||
|
|
||||||
pending := make(map[address.Address]map[uint64]*types.SignedMessage)
|
pending := make(map[address.Address]map[uint64]*types.SignedMessage)
|
||||||
mp.lk.RLock()
|
mp.curTsLk.Lock()
|
||||||
|
mp.lk.Lock()
|
||||||
mp.republished = nil // clear this to avoid races triggering an early republish
|
mp.republished = nil // clear this to avoid races triggering an early republish
|
||||||
mp.forEachLocal(ctx, func(ctx context.Context, actor address.Address) {
|
mp.forEachLocal(ctx, func(ctx context.Context, actor address.Address) {
|
||||||
mset, ok, err := mp.getPendingMset(ctx, actor)
|
mset, ok, err := mp.getPendingMset(ctx, actor)
|
||||||
@ -54,8 +55,8 @@ func (mp *MessagePool) republishPendingMessages(ctx context.Context) error {
|
|||||||
pending[actor] = pend
|
pending[actor] = pend
|
||||||
})
|
})
|
||||||
|
|
||||||
mp.lk.RUnlock()
|
mp.lk.Unlock()
|
||||||
mp.curTsLk.RUnlock()
|
mp.curTsLk.Unlock()
|
||||||
|
|
||||||
if len(pending) == 0 {
|
if len(pending) == 0 {
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user