diff --git a/session.go b/session.go index bed249e49..8213f8486 100644 --- a/session.go +++ b/session.go @@ -863,7 +863,6 @@ func (s *session) onAdmin(msg interface{}) { } func (s *session) run() { - s.stopOnce = sync.Once{} s.Start(s) var stopChan = make(chan struct{}) s.stateTimer = internal.NewEventTimer(func() { diff --git a/session_factory.go b/session_factory.go index f0a0e5982..dbb8e0a87 100644 --- a/session_factory.go +++ b/session_factory.go @@ -19,6 +19,7 @@ import ( "net" "strconv" "strings" + "sync" "time" "github.com/pkg/errors" @@ -84,7 +85,10 @@ func (f sessionFactory) createSession( func (f sessionFactory) newSession( sessionID SessionID, storeFactory MessageStoreFactory, settings *SessionSettings, logFactory LogFactory, application Application) (s *session, err error) { - s = &session{sessionID: sessionID} + s = &session{ + sessionID: sessionID, + stopOnce: sync.Once{}, + } var validatorSettings = defaultValidatorSettings if settings.HasSetting(config.ValidateFieldsOutOfOrder) {