mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Updated setSTerminator channel handling
This commit is contained in:
committed by
Dan Christian Bogos
parent
c2c39336c4
commit
ec3098ef6b
@@ -319,21 +319,21 @@ func (sS *SessionS) setSTerminator(s *Session, opts engine.MapEvent) {
|
||||
}
|
||||
|
||||
// schedule automatic termination
|
||||
go func() {
|
||||
go func(endChan chan struct{}, timer *time.Timer) {
|
||||
select {
|
||||
case <-s.sTerminator.timer.C:
|
||||
case <-timer.C:
|
||||
s.Lock()
|
||||
lastUsage := s.sTerminator.ttl
|
||||
if s.sTerminator.ttlLastUsage != nil {
|
||||
lastUsage = *s.sTerminator.ttlLastUsage
|
||||
}
|
||||
s.Lock()
|
||||
sS.forceSTerminate(s, lastUsage, s.sTerminator.ttlUsage,
|
||||
s.sTerminator.ttlLastUsed)
|
||||
s.Unlock()
|
||||
case <-s.sTerminator.endChan:
|
||||
s.sTerminator.timer.Stop()
|
||||
case <-endChan:
|
||||
timer.Stop()
|
||||
}
|
||||
}()
|
||||
}(s.sTerminator.endChan, s.sTerminator.timer)
|
||||
runtime.Gosched() // force context switching
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user