Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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(); } } } // 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.InitiateShutdown(); } } } // 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
- DecimalAnimationUsingKeyFrames.cs
- MbpInfo.cs
- DependencyObjectPropertyDescriptor.cs
- XmlLanguage.cs
- CanExpandCollapseAllConverter.cs
- ModuleBuilderData.cs
- AutomationIdentifierGuids.cs
- StorageAssociationSetMapping.cs
- ZipIOFileItemStream.cs
- DataGridTableStyleMappingNameEditor.cs
- PerfProviderCollection.cs
- BitmapCodecInfo.cs
- ContainerParagraph.cs
- OledbConnectionStringbuilder.cs
- AgileSafeNativeMemoryHandle.cs
- FixedPageStructure.cs
- XmlBinaryReader.cs
- CompatibleIComparer.cs
- DateTimeParse.cs
- FunctionImportElement.cs
- IntSecurity.cs
- dsa.cs
- CaseStatement.cs
- AppSettingsExpressionBuilder.cs
- SolidColorBrush.cs
- ClientBase.cs
- ActiveXHelper.cs
- WindowsUpDown.cs
- SAPICategories.cs
- FrameworkPropertyMetadata.cs
- ClosableStream.cs
- CodeEntryPointMethod.cs
- ContainerControl.cs
- DataGridHeaderBorder.cs
- IteratorFilter.cs
- QilFactory.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- LocalFileSettingsProvider.cs
- XmlCharType.cs
- Aggregates.cs
- ListViewItemSelectionChangedEvent.cs
- handlecollector.cs
- UpnEndpointIdentity.cs
- XmlSchemaSimpleTypeUnion.cs
- ComplexObject.cs
- Italic.cs
- DriveInfo.cs
- UpdateCommand.cs
- SpellerStatusTable.cs
- XPathSelectionIterator.cs
- ChangeInterceptorAttribute.cs
- SynchronousSendBindingElement.cs
- WindowsToolbarAsMenu.cs
- HighlightVisual.cs
- BooleanSwitch.cs
- CodeAttachEventStatement.cs
- Grant.cs
- HideDisabledControlAdapter.cs
- StreamAsIStream.cs
- WindowsClientElement.cs
- EndpointFilterProvider.cs
- DateBoldEvent.cs
- wgx_commands.cs
- StreamGeometryContext.cs
- XDeferredAxisSource.cs
- ToolBarTray.cs
- HttpDictionary.cs
- RoutedCommand.cs
- ReturnValue.cs
- DataGridBoolColumn.cs
- HttpWriter.cs
- ServiceAppDomainAssociationProvider.cs
- SafeNativeMethodsOther.cs
- DropSource.cs
- ThumbButtonInfo.cs
- CompilerInfo.cs
- XmlSchemaImporter.cs
- GlyphElement.cs
- input.cs
- TriggerBase.cs
- NullableIntSumAggregationOperator.cs
- TabControlToolboxItem.cs
- SafeArchiveContext.cs
- ScriptComponentDescriptor.cs
- CodeDomSerializationProvider.cs
- ParallelForEach.cs
- DataListItemEventArgs.cs
- Literal.cs
- PerformanceCounterPermissionEntryCollection.cs
- TreeViewItem.cs
- GridToolTip.cs
- Figure.cs
- COM2PropertyPageUITypeConverter.cs
- TdsParserSessionPool.cs
- ModelVisual3D.cs
- WebChannelFactory.cs
- FixedSOMElement.cs
- BamlRecordHelper.cs
- TextElementCollectionHelper.cs
- DiscardableAttribute.cs