mirror of
https://github.com/netbirdio/netbird.git
synced 2026-05-13 20:29:55 +00:00
[client/ui] Remove goroutine from ProfileSwitcher.SwitchActive
Down and Up(async=true) are both fast RPCs; no background goroutine is needed. SwitchActive is now fully synchronous — the tray wraps the call in its own goroutine, and Wails handles React calls similarly.
This commit is contained in:
@@ -62,25 +62,21 @@ func (s *ProfileSwitcher) SwitchActive(ctx context.Context, p ProfileRef) error
|
||||
return fmt.Errorf("switch profile %q: %w", p.ProfileName, err)
|
||||
}
|
||||
|
||||
// Down and Up run in a goroutine so the caller returns immediately after
|
||||
// the Switch RPC. Up uses async mode so the goroutine itself is short-lived.
|
||||
go func() {
|
||||
bgCtx := context.Background()
|
||||
if needsDown {
|
||||
if err := s.connection.Down(bgCtx); err != nil {
|
||||
log.Errorf("profileswitcher: Down: %v", err)
|
||||
}
|
||||
if needsDown {
|
||||
if err := s.connection.Down(ctx); err != nil {
|
||||
log.Errorf("profileswitcher: Down: %v", err)
|
||||
}
|
||||
if wasActive {
|
||||
if err := s.connection.Up(bgCtx, UpParams{
|
||||
ProfileName: p.ProfileName,
|
||||
Username: p.Username,
|
||||
Async: true,
|
||||
}); err != nil {
|
||||
log.Errorf("profileswitcher: Up %s: %v", p.ProfileName, err)
|
||||
}
|
||||
}
|
||||
|
||||
if wasActive {
|
||||
if err := s.connection.Up(ctx, UpParams{
|
||||
ProfileName: p.ProfileName,
|
||||
Username: p.Username,
|
||||
Async: true,
|
||||
}); err != nil {
|
||||
return fmt.Errorf("reconnect %q: %w", p.ProfileName, err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user