Skip to content
Snippets Groups Projects
Unverified Commit cb2a60d8 authored by Hans Moog's avatar Hans Moog Committed by GitHub
Browse files

Feat: made syncbeacon always shutdown (#898)


Co-authored-by: default avatarHans Moog <hm@mkjc.net>
parent 9ae9df3a
No related branches found
No related tags found
No related merge requests found
......@@ -64,7 +64,10 @@ func configure(_ *node.Plugin) {
}
// broadcastSyncBeaconPayload broadcasts a sync beacon via communication layer.
func broadcastSyncBeaconPayload() {
func broadcastSyncBeaconPayload() (doneSignal chan struct{}) {
doneSignal = make(chan struct{}, 1)
go func() {
defer close(doneSignal)
syncBeaconPayload := payload.NewSyncBeaconPayload(clock.SyncedTime().UnixNano())
msg, err := issuer.IssuePayload(syncBeaconPayload)
......@@ -75,6 +78,9 @@ func broadcastSyncBeaconPayload() {
}
log.Debugf("issued sync beacon %s", msg.ID())
}()
return
}
func run(_ *node.Plugin) {
......@@ -83,10 +89,17 @@ func run(_ *node.Plugin) {
defer ticker.Stop()
for {
select {
case <-shutdownSignal:
return
case <-ticker.C:
broadcastSyncBeaconPayload()
doneSignal := broadcastSyncBeaconPayload()
select {
case <-shutdownSignal:
return
case <-doneSignal:
// continue with the next beacon
}
}
}
}, shutdown.PrioritySynchronization); err != nil {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment