diff --git a/monitor_shared.go b/monitor_shared.go index 12e3e21..265b07d 100644 --- a/monitor_shared.go +++ b/monitor_shared.go @@ -66,7 +66,12 @@ func (m *defaultInterfaceMonitor) Start() error { return nil } +var accessDelayCheckUpdate sync.Mutex + func (m *defaultInterfaceMonitor) delayCheckUpdate() { + accessDelayCheckUpdate.Lock() + defer accessDelayCheckUpdate.Unlock() + if m.checkUpdateTimer == nil { m.checkUpdateTimer = time.AfterFunc(time.Second, m.postCheckUpdate) } else { diff --git a/stack_system_nat.go b/stack_system_nat.go index 1d0216e..8dc412a 100644 --- a/stack_system_nat.go +++ b/stack_system_nat.go @@ -66,7 +66,9 @@ func (n *TCPNat) LookupBack(port uint16) *TCPSession { session := n.portMap[port] n.portAccess.RUnlock() if session != nil { + n.portAccess.Lock() session.LastActive = time.Now() + n.portAccess.Unlock() } return session }