Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- NativeRecognizer.cs
- FixedPage.cs
- WebSysDefaultValueAttribute.cs
- SelectionBorderGlyph.cs
- _HelperAsyncResults.cs
- MenuRendererClassic.cs
- XPathNodeInfoAtom.cs
- VBCodeProvider.cs
- BlurBitmapEffect.cs
- RuleSettings.cs
- ArrayTypeMismatchException.cs
- FamilyMap.cs
- TreeNode.cs
- PositiveTimeSpanValidator.cs
- ComplexPropertyEntry.cs
- LineSegment.cs
- AddInContractAttribute.cs
- EmulateRecognizeCompletedEventArgs.cs
- ApplicationCommands.cs
- OutgoingWebResponseContext.cs
- DataGridViewImageColumn.cs
- WSSecurityTokenSerializer.cs
- ResourceSet.cs
- DesignTimeParseData.cs
- TextWriterTraceListener.cs
- InputReportEventArgs.cs
- SerialPort.cs
- Package.cs
- UniqueConstraint.cs
- TableColumn.cs
- Exception.cs
- SchemaImporterExtensionElementCollection.cs
- TimeBoundedCache.cs
- WorkflowPersistenceContext.cs
- PixelFormatConverter.cs
- XmlSerializer.cs
- WebPartZoneCollection.cs
- TemplateXamlTreeBuilder.cs
- SoapSchemaExporter.cs
- BrushConverter.cs
- AutomationElementIdentifiers.cs
- DataServiceProcessingPipeline.cs
- BatchStream.cs
- TranslateTransform.cs
- UrlPath.cs
- xamlnodes.cs
- DesignerAttribute.cs
- CacheDependency.cs
- XmlAttribute.cs
- PermissionSet.cs
- FixedPosition.cs
- DataGridState.cs
- RuntimeHandles.cs
- RegexFCD.cs
- NavigationHelper.cs
- ObjectDataSource.cs
- PlatformCulture.cs
- SelectionChangedEventArgs.cs
- ReadOnlyDictionary.cs
- ReceiveMessageContent.cs
- ExceptionValidationRule.cs
- DBDataPermission.cs
- UIElementParagraph.cs
- IssuanceLicense.cs
- DiscoveryCallbackBehavior.cs
- XMLSyntaxException.cs
- ExtentCqlBlock.cs
- ResourceReader.cs
- _WinHttpWebProxyDataBuilder.cs
- KeyValuePairs.cs
- DataContractSerializerElement.cs
- Buffer.cs
- StoreContentChangedEventArgs.cs
- DataListItem.cs
- EventMappingSettingsCollection.cs
- HyperLinkStyle.cs
- SelectingProviderEventArgs.cs
- PolicyManager.cs
- PropertyDescriptor.cs
- Int64Converter.cs
- CustomError.cs
- Span.cs
- WorkflowApplicationTerminatedException.cs
- HMACSHA384.cs
- LicenseProviderAttribute.cs
- PreservationFileReader.cs
- BindingBase.cs
- Evidence.cs
- ListMarkerSourceInfo.cs
- MasterPageBuildProvider.cs
- Speller.cs
- WindowsAuthenticationEventArgs.cs
- SQLMembershipProvider.cs
- EntityDataSourceDataSelectionPanel.designer.cs
- LocalizabilityAttribute.cs
- XmlNode.cs
- ControlAdapter.cs
- InputMethod.cs
- DefaultIfEmptyQueryOperator.cs
- WindowsTokenRoleProvider.cs