Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / 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; // if (HostingEnvironment.BusyCount != 0) return; // if (DateTime.UtcNow <= LastEvent.Add(_idleTimeout)) return; // if (System.Diagnostics.Debugger.IsAttached) return; // shutdown HttpRuntime.SetShutdownReason(ApplicationShutdownReason.IdleTimeout, SR.GetString(SR.Hosting_Env_IdleTimeout)); HostingEnvironment.InitiateShutdown(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ //// 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; // if (HostingEnvironment.BusyCount != 0) return; // if (DateTime.UtcNow <= LastEvent.Add(_idleTimeout)) return; // if (System.Diagnostics.Debugger.IsAttached) return; // shutdown HttpRuntime.SetShutdownReason(ApplicationShutdownReason.IdleTimeout, SR.GetString(SR.Hosting_Env_IdleTimeout)); HostingEnvironment.InitiateShutdown(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MarginCollapsingState.cs
- FileDialog.cs
- EntityStoreSchemaGenerator.cs
- ManagementClass.cs
- SystemWebExtensionsSectionGroup.cs
- EtwProvider.cs
- ContextDataSourceView.cs
- WindowPatternIdentifiers.cs
- LinqDataSourceStatusEventArgs.cs
- SettingsPropertyValue.cs
- StrongTypingException.cs
- DecimalStorage.cs
- MultipleViewProviderWrapper.cs
- CultureSpecificCharacterBufferRange.cs
- OdbcCommandBuilder.cs
- versioninfo.cs
- GenericAuthenticationEventArgs.cs
- IndexOutOfRangeException.cs
- XmlSchemaAttribute.cs
- XmlEventCache.cs
- CodeNamespace.cs
- SqlClientMetaDataCollectionNames.cs
- Speller.cs
- DoubleAnimationUsingPath.cs
- FormatterServices.cs
- JapaneseLunisolarCalendar.cs
- LocalServiceSecuritySettingsElement.cs
- ServiceXNameTypeConverter.cs
- InitializationEventAttribute.cs
- PropertyGrid.cs
- AssemblyAttributes.cs
- SchemaImporter.cs
- DelegateBodyWriter.cs
- XmlNode.cs
- DataGridViewTextBoxEditingControl.cs
- BaseParaClient.cs
- HostExecutionContextManager.cs
- XmlDataSourceNodeDescriptor.cs
- SchemaNames.cs
- XmlNodeList.cs
- TogglePattern.cs
- LoginViewDesigner.cs
- ResourceReferenceKeyNotFoundException.cs
- SafeNativeMethodsOther.cs
- XmlAttributeProperties.cs
- Transform.cs
- DocumentViewerBaseAutomationPeer.cs
- EndpointBehaviorElement.cs
- nulltextnavigator.cs
- ParagraphVisual.cs
- TypeConverterMarkupExtension.cs
- BindingNavigator.cs
- WsdlBuildProvider.cs
- ClientData.cs
- CqlParserHelpers.cs
- RawStylusInput.cs
- tooltip.cs
- XmlSerializerVersionAttribute.cs
- LabelAutomationPeer.cs
- SiteMapDataSourceView.cs
- VirtualizedItemPattern.cs
- ExpandCollapsePattern.cs
- Int64.cs
- ListItemParagraph.cs
- VectorAnimationBase.cs
- RegexMatch.cs
- PartManifestEntry.cs
- CorrelationResolver.cs
- RSAOAEPKeyExchangeFormatter.cs
- WebPermission.cs
- BinaryObjectWriter.cs
- ThemeableAttribute.cs
- MergablePropertyAttribute.cs
- ConversionValidationRule.cs
- RequiredFieldValidator.cs
- CacheDependency.cs
- ListenerPerfCounters.cs
- FrameworkName.cs
- OpCellTreeNode.cs
- TextFormattingConverter.cs
- TextTreeInsertUndoUnit.cs
- JsonStringDataContract.cs
- ColumnWidthChangedEvent.cs
- AVElementHelper.cs
- RefreshEventArgs.cs
- ProcessHostFactoryHelper.cs
- HtmlInputRadioButton.cs
- DeriveBytes.cs
- TabControlEvent.cs
- PolicyException.cs
- ProcessModelSection.cs
- OdbcConnection.cs
- BitHelper.cs
- cache.cs
- HebrewCalendar.cs
- DetailsViewInsertEventArgs.cs
- Point4DValueSerializer.cs
- QilXmlReader.cs
- Span.cs
- CategoryAttribute.cs