From 24525698aae2a73490cfd37d7070edb3886ee8ac Mon Sep 17 00:00:00 2001 From: Luca Moser <moser.luca@gmail.com> Date: Fri, 26 Jun 2020 13:28:29 +0200 Subject: [PATCH] make IssuePayload sync (#563) --- .../binary/messagelayer/messagefactory/messagefactory.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/binary/messagelayer/messagefactory/messagefactory.go b/packages/binary/messagelayer/messagefactory/messagefactory.go index 8401a9af..4a206e2d 100644 --- a/packages/binary/messagelayer/messagefactory/messagefactory.go +++ b/packages/binary/messagelayer/messagefactory/messagefactory.go @@ -34,8 +34,9 @@ type MessageFactory struct { localIdentity *identity.LocalIdentity selector TipSelector - worker Worker - workerMutex sync.RWMutex + worker Worker + workerMutex sync.RWMutex + issuanceMutex sync.Mutex } // New creates a new message factory. @@ -65,6 +66,8 @@ func (m *MessageFactory) SetWorker(worker Worker) { // It also triggers the MessageConstructed event once it's done, which is for example used by the plugins to listen for // messages that shall be attached to the tangle. func (m *MessageFactory) IssuePayload(payload payload.Payload) *message.Message { + m.issuanceMutex.Lock() + defer m.issuanceMutex.Unlock() sequenceNumber, err := m.sequence.Next() if err != nil { m.Events.Error.Trigger(fmt.Errorf("could not create sequence number: %w", err)) -- GitLab