mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-10 20:56:51 +00:00
Other: Stop gRPC server on crash
This commit is contained in:
committed by
Leander Beernaert
parent
f954f89747
commit
6bd8c6ceb6
@ -68,6 +68,7 @@ type Service struct { // nolint:structcheck
|
||||
restarter Restarter
|
||||
bridge *bridge.Bridge
|
||||
eventCh <-chan events.Event
|
||||
quitCh <-chan struct{}
|
||||
|
||||
latest updater.VersionInfo
|
||||
latestLock safe.RWMutex
|
||||
@ -97,6 +98,7 @@ func NewService(
|
||||
locations Locator,
|
||||
bridge *bridge.Bridge,
|
||||
eventCh <-chan events.Event,
|
||||
quitCh <-chan struct{},
|
||||
showOnStartup bool,
|
||||
parentPID int,
|
||||
) (*Service, error) {
|
||||
@ -130,6 +132,7 @@ func NewService(
|
||||
restarter: restarter,
|
||||
bridge: bridge,
|
||||
eventCh: eventCh,
|
||||
quitCh: quitCh,
|
||||
|
||||
latest: updater.VersionInfo{},
|
||||
latestLock: safe.NewRWMutex(),
|
||||
@ -194,6 +197,15 @@ func (s *Service) Loop() error {
|
||||
|
||||
s.log.Info("Starting gRPC server")
|
||||
|
||||
go func() {
|
||||
<-s.quitCh
|
||||
|
||||
s.log.Info("Stopping gRPC server")
|
||||
defer s.log.Info("Stopped gRPC server")
|
||||
|
||||
s.grpcServer.Stop()
|
||||
}()
|
||||
|
||||
if err := s.grpcServer.Serve(s.listener); err != nil {
|
||||
s.log.WithError(err).Error("Failed to serve gRPC")
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user