Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / IdleTimeoutMonitor.cs / 1305376 / IdleTimeoutMonitor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Request timeout manager -- implements the request timeout mechanism */ namespace System.Web { using System.Threading; using System.Collections; using System.Web.Hosting; using System.Web.Util; internal class IdleTimeoutMonitor { private TimeSpan _idleTimeout; // the timeout value private DateTime _lastEvent; // idle since this time private Timer _timer; private readonly TimeSpan _timerPeriod = new TimeSpan(0, 0, 30); // 30 secs internal IdleTimeoutMonitor(TimeSpan timeout) { _idleTimeout = timeout; _timer = new Timer(new TimerCallback(this.TimerCompletionCallback), null, _timerPeriod, _timerPeriod); _lastEvent = DateTime.UtcNow; } internal void Stop() { // stop the timer if (_timer != null) { lock (this) { if (_timer != null) { ((IDisposable)_timer).Dispose(); _timer = null; } } } } internal DateTime LastEvent { // thread-safe property get { DateTime t; lock (this) { t = _lastEvent; } return t; } set { lock (this) { _lastEvent = value; } } } private void TimerCompletionCallback(Object state) { // user idle timer to trim the free list of app instanced HttpApplicationFactory.TrimApplicationInstances(); // no idle timeout if (_idleTimeout == TimeSpan.MaxValue) return; // don't do idle timeout if already shutting down if (HostingEnvironment.ShutdownInitiated) return; // check if there are active requests if (HostingEnvironment.BusyCount != 0) return; // check if enough time passed if (DateTime.UtcNow <= LastEvent.Add(_idleTimeout)) return; // check if debugger is attached if (System.Diagnostics.Debugger.IsAttached) return; // shutdown HttpRuntime.SetShutdownReason(ApplicationShutdownReason.IdleTimeout, SR.GetString(SR.Hosting_Env_IdleTimeout)); HostingEnvironment.InitiateShutdownWithoutDemand(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebBrowserBase.cs
- DbConnectionHelper.cs
- KeyValueInternalCollection.cs
- PaintEvent.cs
- XmlILTrace.cs
- RelatedPropertyManager.cs
- TextParagraphCache.cs
- MetaModel.cs
- CaseStatementProjectedSlot.cs
- ApplicationId.cs
- ToolStripPanelRow.cs
- DiagnosticsConfiguration.cs
- CompositionAdorner.cs
- BamlWriter.cs
- CancellableEnumerable.cs
- ManagedWndProcTracker.cs
- OleDbConnectionFactory.cs
- Animatable.cs
- ListViewItemMouseHoverEvent.cs
- ListBoxItemWrapperAutomationPeer.cs
- C14NUtil.cs
- CompilerWrapper.cs
- GregorianCalendarHelper.cs
- ResolveMatchesApril2005.cs
- SafeNativeMethods.cs
- ExtensibleClassFactory.cs
- MSAAWinEventWrap.cs
- Socket.cs
- Model3DCollection.cs
- EntityViewGenerationAttribute.cs
- SqlBooleanizer.cs
- NativeConfigurationLoader.cs
- CodeNamespaceImportCollection.cs
- TouchEventArgs.cs
- WindowsFont.cs
- WizardStepBase.cs
- GlobalDataBindingHandler.cs
- DataObjectMethodAttribute.cs
- AmbientValueAttribute.cs
- TextEffect.cs
- PriorityBinding.cs
- FrugalList.cs
- CompoundFileStreamReference.cs
- ProfileManager.cs
- TableHeaderCell.cs
- DateTimeFormat.cs
- ProgressBar.cs
- DBConnection.cs
- ProxyGenerationError.cs
- Html32TextWriter.cs
- UnionCodeGroup.cs
- FilterEventArgs.cs
- StrokeDescriptor.cs
- CodeVariableReferenceExpression.cs
- relpropertyhelper.cs
- WorkflowOperationAsyncResult.cs
- DuplexChannelBinder.cs
- Win32PrintDialog.cs
- FactoryMaker.cs
- ResourceDescriptionAttribute.cs
- RightNameExpirationInfoPair.cs
- Win32.cs
- ObjRef.cs
- Debug.cs
- ApplyHostConfigurationBehavior.cs
- ListChangedEventArgs.cs
- updatecommandorderer.cs
- DocumentScope.cs
- dbdatarecord.cs
- TextTreeTextNode.cs
- Stopwatch.cs
- CrossAppDomainChannel.cs
- DesignerTransaction.cs
- ListenerElementsCollection.cs
- CroppedBitmap.cs
- SequenceRange.cs
- CellCreator.cs
- uribuilder.cs
- _SSPIWrapper.cs
- SqlFacetAttribute.cs
- PropertyPathConverter.cs
- DynamicPhysicalDiscoSearcher.cs
- MatrixAnimationUsingKeyFrames.cs
- ButtonRenderer.cs
- Win32.cs
- SqlConnectionFactory.cs
- FormatterConverter.cs
- ReadWriteSpinLock.cs
- PathSegment.cs
- UndoUnit.cs
- CacheAxisQuery.cs
- CodeGenerationManager.cs
- DefaultDialogButtons.cs
- SimpleLine.cs
- XPathNodeIterator.cs
- WebPartDescription.cs
- SessionStateContainer.cs
- ZipIOLocalFileHeader.cs
- StandardCommands.cs
- ApplicationDirectoryMembershipCondition.cs