diff --git a/pwd/pwd.go b/pwd/pwd.go index 99d5fde..6714b02 100644 --- a/pwd/pwd.go +++ b/pwd/pwd.go @@ -1,6 +1,7 @@ package pwd import ( + "sync" "time" "github.com/play-with-docker/play-with-docker/docker" @@ -23,6 +24,7 @@ var ( ) var sessions map[string]*Session +var sessionsMutex sync.Mutex func init() { prometheus.MustRegister(sessionsGauge) diff --git a/pwd/session.go b/pwd/session.go index 6114680..89d0ca2 100644 --- a/pwd/session.go +++ b/pwd/session.go @@ -52,6 +52,9 @@ type Session struct { } func (p *pwd) SessionNew(duration time.Duration, stack, stackName string) (*Session, error) { + sessionsMutex.Lock() + defer sessionsMutex.Unlock() + s := &Session{} s.Id = uuid.NewV4().String() s.Instances = map[string]*Instance{}