예제 #1
0
파일: Session.cs 프로젝트: tmds/Tmds.SockJS
 public void CancelSessionTimeout()
 {
     _timeoutTimer.Cancel();
     _timeoutTimer = null;
 }
예제 #2
0
파일: Session.cs 프로젝트: tmds/Tmds.SockJS
 public void ScheduleSessionTimeout(Session session, CancellableTimerCallback callback, TimeSpan dueTime)
 {
     _timeoutTimer = CancellableTimer.Schedule(callback, session, dueTime);
 }
예제 #3
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();
     }
 }