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
- Component.cs
- SecurityRuntime.cs
- ProgressBarAutomationPeer.cs
- VectorKeyFrameCollection.cs
- Assert.cs
- ColorInterpolationModeValidation.cs
- EntityContainerEntitySet.cs
- PrtCap_Public.cs
- RequestQueue.cs
- PropertyInfoSet.cs
- ValidatorCompatibilityHelper.cs
- DirectionalAction.cs
- BasePropertyDescriptor.cs
- SmtpFailedRecipientsException.cs
- TemplateBindingExtension.cs
- ProcessHostFactoryHelper.cs
- milexports.cs
- IRCollection.cs
- NativeMethods.cs
- Border.cs
- HwndHost.cs
- IPGlobalProperties.cs
- PaperSize.cs
- FullTextBreakpoint.cs
- DiscardableAttribute.cs
- WSFederationHttpSecurityMode.cs
- InheritablePropertyChangeInfo.cs
- ItemsPresenter.cs
- RightsManagementErrorHandler.cs
- DataRelationPropertyDescriptor.cs
- ContentFileHelper.cs
- EntityTransaction.cs
- Types.cs
- ZipIOCentralDirectoryBlock.cs
- WindowsRichEdit.cs
- HttpRequestCacheValidator.cs
- FontFamilyConverter.cs
- RenderData.cs
- followingsibling.cs
- _NegoStream.cs
- RootBrowserWindow.cs
- PlaceHolder.cs
- TagNameToTypeMapper.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- Properties.cs
- RewritingPass.cs
- PropertyChangedEventManager.cs
- ContractCodeDomInfo.cs
- ModulesEntry.cs
- Model3DCollection.cs
- ObjectToIdCache.cs
- ErrorWrapper.cs
- FormatConvertedBitmap.cs
- DesignTimeData.cs
- ClientOptions.cs
- RelationshipDetailsRow.cs
- ToolStripItemTextRenderEventArgs.cs
- ConfigXmlSignificantWhitespace.cs
- DefaultObjectMappingItemCollection.cs
- ByteAnimation.cs
- RangeBaseAutomationPeer.cs
- DBCommandBuilder.cs
- GridViewDeleteEventArgs.cs
- EntityTypeEmitter.cs
- WebRequestModuleElementCollection.cs
- ThreadExceptionEvent.cs
- RichTextBox.cs
- TagPrefixAttribute.cs
- SqlDataSource.cs
- WebZone.cs
- DefaultValueTypeConverter.cs
- TextElementCollection.cs
- SqlClientMetaDataCollectionNames.cs
- XmlDataSource.cs
- CompoundFileIOPermission.cs
- StylusPointDescription.cs
- FunctionDescription.cs
- CheckBox.cs
- CacheRequest.cs
- WebPartVerbCollection.cs
- DateTimeOffset.cs
- XmlStreamStore.cs
- SecurityTokenSerializer.cs
- AuthenticationService.cs
- PolicyValidationException.cs
- Compiler.cs
- HtmlFormWrapper.cs
- PersonalizationProviderCollection.cs
- SecurityKeyUsage.cs
- SqlFunctions.cs
- _ConnectOverlappedAsyncResult.cs
- Win32Native.cs
- SecurityMode.cs
- GlobalizationSection.cs
- PathSegment.cs
- Msec.cs
- ReadOnlyCollectionBase.cs
- TdsParameterSetter.cs
- SendMailErrorEventArgs.cs
- DataGridViewCellParsingEventArgs.cs