From b5f8897c2a744ed9871ffd027559079124840ac6 Mon Sep 17 00:00:00 2001 From: Patrick Crosby Date: Mon, 9 Sep 2019 13:05:42 -0500 Subject: [PATCH] Add lock in GetPaymentLocal --- go/stellar/loader.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/go/stellar/loader.go b/go/stellar/loader.go index 1c0acd5e1081..080d1dc4485f 100644 --- a/go/stellar/loader.go +++ b/go/stellar/loader.go @@ -90,6 +90,12 @@ func DefaultLoader(g *libkb.GlobalContext) *Loader { } func (p *Loader) GetPaymentLocal(ctx context.Context, paymentID stellar1.PaymentID) (*stellar1.PaymentLocal, bool) { + p.Lock() + defer p.Unlock() + return p.getPaymentLocalLocked(ctx, paymentID) +} + +func (p *Loader) getPaymentLocalLocked(ctx context.Context, paymentID stellar1.PaymentID) (*stellar1.PaymentLocal, bool) { pmt, ok := p.payments[paymentID] return pmt, ok } @@ -125,7 +131,7 @@ func (p *Loader) LoadPayment(ctx context.Context, convID chat1.ConversationID, m m.Warning("existing payment message info does not match load info: (%v, %v) != (%v, %v)", msg.convID, msg.msgID, convID, msgID) } - payment, ok := p.GetPaymentLocal(ctx, paymentID) + payment, ok := p.getPaymentLocalLocked(ctx, paymentID) if ok { info := p.uiPaymentInfo(m, payment, msg) p.G().NotifyRouter.HandleChatPaymentInfo(m.Ctx(), p.G().ActiveDevice.UID(), convID, msgID, *info)