Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- DBSqlParserColumn.cs
- HyperLinkStyle.cs
- SecurityTokenTypes.cs
- Int64.cs
- dataprotectionpermissionattribute.cs
- D3DImage.cs
- GPRECTF.cs
- EmissiveMaterial.cs
- SatelliteContractVersionAttribute.cs
- IdnMapping.cs
- TrackingDataItemValue.cs
- PageContentCollection.cs
- Ipv6Element.cs
- ClientSideProviderDescription.cs
- WindowAutomationPeer.cs
- ProjectedSlot.cs
- InkCanvasInnerCanvas.cs
- BasicExpandProvider.cs
- Camera.cs
- Point3DAnimationUsingKeyFrames.cs
- MenuItem.cs
- HoistedLocals.cs
- CryptoSession.cs
- DataGridViewSelectedCellCollection.cs
- TypedElement.cs
- TimersDescriptionAttribute.cs
- CssTextWriter.cs
- PageCatalogPart.cs
- RangeBase.cs
- XPathArrayIterator.cs
- InfoCardRequestException.cs
- PropertyPath.cs
- MonthChangedEventArgs.cs
- ConsoleCancelEventArgs.cs
- ToolTipAutomationPeer.cs
- SessionStateModule.cs
- MouseCaptureWithinProperty.cs
- CommentEmitter.cs
- SecurityKeyEntropyMode.cs
- CodePageEncoding.cs
- HtmlPageAdapter.cs
- WebEventCodes.cs
- AnnotationHighlightLayer.cs
- ObjectViewListener.cs
- PinnedBufferMemoryStream.cs
- ClusterSafeNativeMethods.cs
- Page.cs
- DataGridColumn.cs
- MiniModule.cs
- RecognizerBase.cs
- DataRecordInternal.cs
- DSASignatureDeformatter.cs
- SolidColorBrush.cs
- DataGridViewImageColumn.cs
- FontCacheUtil.cs
- EdmType.cs
- Roles.cs
- SmtpNetworkElement.cs
- StylusShape.cs
- StylusPointPropertyInfoDefaults.cs
- DoubleAnimationUsingKeyFrames.cs
- DependencySource.cs
- ProcessHostConfigUtils.cs
- ProtectedConfigurationSection.cs
- Native.cs
- ItemCheckEvent.cs
- Helpers.cs
- RectKeyFrameCollection.cs
- TimeSpanValidatorAttribute.cs
- NativeBuffer.cs
- SerialReceived.cs
- FloaterParagraph.cs
- CompilationSection.cs
- SmiGettersStream.cs
- TableRowGroup.cs
- StreamReader.cs
- CachedTypeface.cs
- DataGridViewAutoSizeModeEventArgs.cs
- XmlDataLoader.cs
- CompositionAdorner.cs
- selecteditemcollection.cs
- EventProvider.cs
- GrammarBuilder.cs
- DelayDesigner.cs
- DataKey.cs
- StreamHelper.cs
- BasicHttpSecurityElement.cs
- MsmqIntegrationMessageProperty.cs
- CompilerTypeWithParams.cs
- SizeConverter.cs
- AvTraceDetails.cs
- BindingManagerDataErrorEventArgs.cs
- RemoteWebConfigurationHostServer.cs
- CornerRadius.cs
- RemoteWebConfigurationHost.cs
- ClientSideQueueItem.cs
- SynchronizationFilter.cs
- TransformConverter.cs
- WinEventQueueItem.cs
- SharedUtils.cs