Exemple #1
0
        private void OnSessionTimeout(object state, CancellableTimer timer)
        {
            Session session = (Session)state;

            try
            {
                session.EnterExclusiveLock();
                if (timer.IsCancelled)
                {
                    return;
                }
                _sessions.TryRemove(session.SessionId, out session);
                session.HandleClientTimeOut();
            }
            finally
            {
                session.ExitExclusiveLock();
            }
        }
Exemple #2
0
 public void ScheduleSessionTimeout(Session session, CancellableTimerCallback callback, TimeSpan dueTime)
 {
     _timeoutTimer = CancellableTimer.Schedule(callback, session, dueTime);
 }
Exemple #3
0
 public void CancelSessionTimeout()
 {
     _timeoutTimer.Cancel();
     _timeoutTimer = null;
 }