From d1992ec466910c429f162f0280257a678de1b153 Mon Sep 17 00:00:00 2001 From: Gregory Wells Date: Fri, 3 Apr 2026 14:45:34 -0400 Subject: [PATCH] make session manager a singleton --- src/session/session_manager.go | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/session/session_manager.go b/src/session/session_manager.go index 51119e1..42abe0d 100644 --- a/src/session/session_manager.go +++ b/src/session/session_manager.go @@ -2,6 +2,7 @@ package session import ( "net/http" + "sync" "time" "astraltech.xyz/accountmanager/src/logging" @@ -13,6 +14,9 @@ type SessionManager struct { store SessionStore } +var instance *SessionManager +var once sync.Once + type StoreType int const ( @@ -20,15 +24,17 @@ const ( ) func CreateSessionManager(storeType StoreType) *SessionManager { - sessionManager := SessionManager{} - switch storeType { - case InMemory: - { - sessionManager.store = NewMemoryStore() - break + once.Do(func() { + instance = &SessionManager{} + switch storeType { + case InMemory: + { + instance.store = NewMemoryStore() + break + } } - } - return &sessionManager + }) + return instance } func (manager *SessionManager) CreateSession(userID string) (cookie *http.Cookie, err error) {