Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / IdleTimeoutMonitor.cs / 1 / 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.InitiateShutdown(); } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SecurityException.cs
- graph.cs
- ProcessModelSection.cs
- HtmlInputImage.cs
- TransformConverter.cs
- LostFocusEventManager.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- PlainXmlDeserializer.cs
- Internal.cs
- AutomationElement.cs
- CharUnicodeInfo.cs
- XsdBuildProvider.cs
- WebReferenceOptions.cs
- Selection.cs
- NativeMethods.cs
- TrustLevelCollection.cs
- NestPullup.cs
- PreProcessInputEventArgs.cs
- TemplateControlParser.cs
- UserMapPath.cs
- ProfilePropertyMetadata.cs
- TimelineCollection.cs
- ToolStripOverflow.cs
- ClientConfigurationHost.cs
- PersistenceIOParticipant.cs
- ColorComboBox.cs
- ComponentRenameEvent.cs
- TreeNodeMouseHoverEvent.cs
- Rotation3DKeyFrameCollection.cs
- TypefaceMetricsCache.cs
- QueryTask.cs
- CharEnumerator.cs
- XPathBinder.cs
- StaticExtension.cs
- AssemblyContextControlItem.cs
- CommandField.cs
- CodeDOMProvider.cs
- UrlPath.cs
- TypeSource.cs
- ConnectionStringSettings.cs
- TextEditorTables.cs
- DataServiceQueryProvider.cs
- EdmSchemaError.cs
- XmlAttributeProperties.cs
- NativeActivityAbortContext.cs
- SQLInt32Storage.cs
- TemplatePartAttribute.cs
- BaseProcessor.cs
- TemplateBindingExpressionConverter.cs
- HostProtectionPermission.cs
- FormatterServices.cs
- XPathQilFactory.cs
- IOException.cs
- TextPointerBase.cs
- UnSafeCharBuffer.cs
- XamlValidatingReader.cs
- TemplateControlBuildProvider.cs
- ExpandButtonVisibilityConverter.cs
- PrintPreviewDialog.cs
- DataGridViewSortCompareEventArgs.cs
- BinHexEncoder.cs
- RoutedEventHandlerInfo.cs
- XmlQueryTypeFactory.cs
- NotifyCollectionChangedEventArgs.cs
- MulticastOption.cs
- AdornedElementPlaceholder.cs
- SpeechDetectedEventArgs.cs
- CompleteWizardStep.cs
- CommandValueSerializer.cs
- CodeSnippetExpression.cs
- RoleGroupCollection.cs
- BuildManager.cs
- FormsAuthenticationCredentials.cs
- ResourceContainer.cs
- SignedXml.cs
- TreeViewBindingsEditorForm.cs
- Internal.cs
- PipelineModuleStepContainer.cs
- ImageClickEventArgs.cs
- CheckBoxRenderer.cs
- ServiceOperation.cs
- TextElementEnumerator.cs
- EdmProperty.cs
- MultiPartWriter.cs
- ReflectPropertyDescriptor.cs
- UIElement3D.cs
- ImageField.cs
- RewritingValidator.cs
- CodeCastExpression.cs
- Visual3D.cs
- SharedStream.cs
- MouseCaptureWithinProperty.cs
- MasterPageCodeDomTreeGenerator.cs
- ConvertersCollection.cs
- DocumentXmlWriter.cs
- WebBrowserContainer.cs
- WebServicesSection.cs
- OperationFormatter.cs
- input.cs
- ImagingCache.cs