feat(GODT-2500): Reorganise async methods.

This commit is contained in:
Jakub
2023-03-30 17:50:40 +02:00
parent ec92c918cd
commit de5fd07a22
42 changed files with 136 additions and 511 deletions

View File

@ -21,7 +21,7 @@ package cli
import (
"errors"
"github.com/ProtonMail/proton-bridge/v3/internal/async"
"github.com/ProtonMail/gluon/async"
"github.com/ProtonMail/proton-bridge/v3/internal/bridge"
"github.com/ProtonMail/proton-bridge/v3/internal/constants"
"github.com/ProtonMail/proton-bridge/v3/internal/events"
@ -289,7 +289,7 @@ func New(bridge *bridge.Bridge, restarter *restarter.Restarter, eventCh <-chan e
}
func (f *frontendCLI) watchEvents(eventCh <-chan events.Event) { // nolint:gocyclo
defer f.handlePanic()
defer async.HandlePanic(f.panicHandler)
// GODT-1949: Better error events.
for _, err := range f.bridge.GetErrors() {
@ -451,12 +451,6 @@ func (f *frontendCLI) watchEvents(eventCh <-chan events.Event) { // nolint:gocyc
*/
}
func (f *frontendCLI) handlePanic() {
if f.panicHandler != nil {
f.panicHandler.HandlePanic()
}
}
// Loop starts the frontend loop with an interactive shell.
func (f *frontendCLI) Loop() error {
f.Printf(`

View File

@ -33,6 +33,7 @@ import (
"sync"
"time"
"github.com/ProtonMail/gluon/async"
"github.com/ProtonMail/go-proton-api"
"github.com/ProtonMail/proton-bridge/v3/internal/bridge"
"github.com/ProtonMail/proton-bridge/v3/internal/certs"
@ -192,9 +193,7 @@ func NewService(
}
func (s *Service) handlePanic() {
if s.panicHandler != nil {
s.panicHandler.HandlePanic()
}
async.HandlePanic(s.panicHandler)
}
func (s *Service) initAutostart() {

View File

@ -49,7 +49,7 @@ func (s *Service) RunEventStream(request *EventStreamRequest, server Bridge_RunE
// if events occurred before streaming started, they've been queued. Now that the stream channel is available
// we can flush the queued
go func() {
defer s.panicHandler.HandlePanic()
defer s.handlePanic()
s.eventQueueMutex.Lock()
defer s.eventQueueMutex.Unlock()

View File

@ -70,7 +70,7 @@ func (s *Service) SetUserSplitMode(ctx context.Context, splitMode *UserSplitMode
}
go func() {
defer s.panicHandler.HandlePanic()
defer s.handlePanic()
defer func() { _ = s.SendEvent(NewUserToggleSplitModeFinishedEvent(splitMode.UserID)) }()
var targetMode vault.AddressMode
@ -121,7 +121,7 @@ func (s *Service) LogoutUser(ctx context.Context, userID *wrapperspb.StringValue
}
go func() {
defer s.panicHandler.HandlePanic()
defer s.handlePanic()
if err := s.bridge.LogoutUser(context.Background(), userID.Value); err != nil {
s.log.WithError(err).Error("Failed to log user out")
@ -135,7 +135,7 @@ func (s *Service) RemoveUser(ctx context.Context, userID *wrapperspb.StringValue
s.log.WithField("UserID", userID.Value).Debug("RemoveUser")
go func() {
defer s.panicHandler.HandlePanic()
defer s.handlePanic()
// remove preferences
if err := s.bridge.DeleteUser(context.Background(), userID.Value); err != nil {