global: split Akvorado into 3 services

This commit is contained in:
Vincent Bernat
2022-04-01 20:21:53 +02:00
parent a336370c05
commit 1dc253764d
179 changed files with 1768 additions and 1263 deletions

View File

@@ -0,0 +1,22 @@
package daemon
import (
"sync"
)
// lifecycleComponent is the lifecycle part of a component.
type lifecycleComponent struct {
terminateChannel chan struct{}
terminateOnce sync.Once
}
// Terminated will return a channel that will be closed when the daemon
// needs to terminate.
func (c *lifecycleComponent) Terminated() <-chan struct{} {
return c.terminateChannel
}
// Terminate should be called to request termination of a daemon.
func (c *lifecycleComponent) Terminate() {
c.terminateOnce.Do(func() { close(c.terminateChannel) })
}