Code:
/ FX-1434 / FX-1434 / 1.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
- CancellationState.cs
- GradientStopCollection.cs
- ServiceDescription.cs
- ItemsControlAutomationPeer.cs
- GlyphCache.cs
- diagnosticsswitches.cs
- RectKeyFrameCollection.cs
- ColumnClickEvent.cs
- EdmItemCollection.OcAssemblyCache.cs
- ExpandableObjectConverter.cs
- MethodBody.cs
- SafeHGlobalHandleCritical.cs
- ArraySortHelper.cs
- SqlCommand.cs
- VisualBrush.cs
- Preprocessor.cs
- IPEndPoint.cs
- SQLSingleStorage.cs
- InternalConfigSettingsFactory.cs
- PolicyChain.cs
- LinearGradientBrush.cs
- RsaSecurityTokenAuthenticator.cs
- HideDisabledControlAdapter.cs
- SpanIndex.cs
- XmlStrings.cs
- Effect.cs
- RotationValidation.cs
- ToolboxItemFilterAttribute.cs
- HandlerWithFactory.cs
- ContentPlaceHolderDesigner.cs
- StylusCaptureWithinProperty.cs
- ScriptingRoleServiceSection.cs
- SourceFilter.cs
- CompiledRegexRunner.cs
- TreeNodeSelectionProcessor.cs
- StreamGeometryContext.cs
- ScriptReference.cs
- XamlTreeBuilderBamlRecordWriter.cs
- WebPartEditorCancelVerb.cs
- MsmqAuthenticationMode.cs
- TextMarkerSource.cs
- SafeBitVector32.cs
- SqlNodeTypeOperators.cs
- NullableLongAverageAggregationOperator.cs
- HttpListenerException.cs
- Schema.cs
- DataGridViewRowHeaderCell.cs
- StyleReferenceConverter.cs
- SqlDataSourceFilteringEventArgs.cs
- ApplyImportsAction.cs
- DrawingGroup.cs
- SafeRightsManagementQueryHandle.cs
- ToolStripDropDownItemDesigner.cs
- SizeIndependentAnimationStorage.cs
- HitTestWithGeometryDrawingContextWalker.cs
- RuntimeVariableList.cs
- AddressingProperty.cs
- JournalNavigationScope.cs
- FontUnitConverter.cs
- Logging.cs
- CancellationHandler.cs
- PositiveTimeSpanValidatorAttribute.cs
- ConstructorNeedsTagAttribute.cs
- FrameworkElementFactory.cs
- ChtmlImageAdapter.cs
- NativeRightsManagementAPIsStructures.cs
- DataGridViewLinkColumn.cs
- ReferentialConstraint.cs
- DataSourceListEditor.cs
- FixedHighlight.cs
- SiteMapNode.cs
- DbConnectionPoolIdentity.cs
- QueryProcessor.cs
- SystemKeyConverter.cs
- ContextDataSourceView.cs
- DesignerProperties.cs
- MessageFormatterConverter.cs
- AttributeProviderAttribute.cs
- TextChange.cs
- NameValueCollection.cs
- EventSetter.cs
- DummyDataSource.cs
- RootProfilePropertySettingsCollection.cs
- SectionInput.cs
- Stopwatch.cs
- ClientBuildManagerCallback.cs
- pingexception.cs
- CatalogZoneDesigner.cs
- MenuItemBinding.cs
- DateTimeConverter.cs
- IdentityManager.cs
- TextEffectCollection.cs
- AttributeEmitter.cs
- Schema.cs
- XmlValidatingReaderImpl.cs
- PrintingPermission.cs
- SqlSupersetValidator.cs
- SHA256Managed.cs
- RoleGroupCollection.cs
- sapiproxy.cs