Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlSchemaSimpleContent.cs
- PassportPrincipal.cs
- DictionaryChange.cs
- ColumnBinding.cs
- TextEvent.cs
- LinkArea.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- ValueProviderWrapper.cs
- Duration.cs
- DataListAutoFormat.cs
- QuadraticBezierSegment.cs
- WinCategoryAttribute.cs
- ControlTemplate.cs
- SymbolResolver.cs
- EncoderBestFitFallback.cs
- ResponseStream.cs
- BindingContext.cs
- NetWebProxyFinder.cs
- LassoSelectionBehavior.cs
- BadImageFormatException.cs
- ListBoxItemWrapperAutomationPeer.cs
- CodeLabeledStatement.cs
- StreamGeometry.cs
- QueryInterceptorAttribute.cs
- ReflectionUtil.cs
- Funcletizer.cs
- WinFormsSecurity.cs
- NameSpaceExtractor.cs
- _ShellExpression.cs
- CodeDomDesignerLoader.cs
- FieldNameLookup.cs
- ProxyHelper.cs
- ContractNamespaceAttribute.cs
- PauseStoryboard.cs
- ProgressBar.cs
- WebMessageEncodingBindingElement.cs
- XamlContextStack.cs
- basemetadatamappingvisitor.cs
- RoutedPropertyChangedEventArgs.cs
- MimeMultiPart.cs
- PersonalizationStateInfoCollection.cs
- EnumDataContract.cs
- QilInvokeEarlyBound.cs
- X509WindowsSecurityToken.cs
- DriveInfo.cs
- IMembershipProvider.cs
- Quad.cs
- DockProviderWrapper.cs
- IsolatedStorageException.cs
- ProfileGroupSettingsCollection.cs
- PageClientProxyGenerator.cs
- AlternationConverter.cs
- SchemaInfo.cs
- EntityViewGenerationAttribute.cs
- DataGridItemEventArgs.cs
- WindowsMenu.cs
- OleDbFactory.cs
- LiteralSubsegment.cs
- RootProfilePropertySettingsCollection.cs
- QueryableDataSource.cs
- Attribute.cs
- MeasureData.cs
- ConvertTextFrag.cs
- WebPartChrome.cs
- TreeNodeSelectionProcessor.cs
- TreeNodeMouseHoverEvent.cs
- DESCryptoServiceProvider.cs
- DetailsView.cs
- ActiveXHelper.cs
- PinnedBufferMemoryStream.cs
- PaperSize.cs
- RegionData.cs
- PageVisual.cs
- ProviderBase.cs
- StateMachineWorkflowInstance.cs
- AuthorizationRule.cs
- ConfigurationLocation.cs
- ChildChangedEventArgs.cs
- TrustSection.cs
- RoutedEventHandlerInfo.cs
- CurrencyWrapper.cs
- ProgramNode.cs
- SolidColorBrush.cs
- Touch.cs
- ScanQueryOperator.cs
- OdbcRowUpdatingEvent.cs
- GuidConverter.cs
- PrintDocument.cs
- ConfigurationStrings.cs
- Span.cs
- Single.cs
- DesignerResources.cs
- UInt64Storage.cs
- XsdCachingReader.cs
- FormViewPageEventArgs.cs
- SystemUnicastIPAddressInformation.cs
- TextViewBase.cs
- OutputCacheSection.cs
- TabControlEvent.cs
- NullableDecimalSumAggregationOperator.cs