GODT-2100: Load users in parallel at startup

This commit is contained in:
James Houlahan
2022-11-19 12:13:33 +01:00
parent 6bdcdf7fd2
commit 7d84ab37f6
5 changed files with 17 additions and 109 deletions

View File

@ -20,6 +20,7 @@ package bridge
import (
"context"
"fmt"
"runtime"
"github.com/ProtonMail/gluon/imap"
"github.com/ProtonMail/proton-bridge/v2/internal/async"
@ -319,7 +320,7 @@ func (bridge *Bridge) loginUser(ctx context.Context, client *liteapi.Client, aut
// loadUsers tries to load each user in the vault that isn't already loaded.
func (bridge *Bridge) loadUsers(ctx context.Context) error {
return bridge.vault.ForUser(func(user *vault.User) error {
return bridge.vault.ForUser(runtime.NumCPU(), func(user *vault.User) error {
if user.AuthUID() == "" {
return nil
}