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
- DataGridViewRowPrePaintEventArgs.cs
- OAVariantLib.cs
- AnimationException.cs
- TemplateParser.cs
- XmlNode.cs
- ResourceIDHelper.cs
- GridItemProviderWrapper.cs
- ResizeGrip.cs
- DbParameterHelper.cs
- PluralizationService.cs
- XhtmlBasicLabelAdapter.cs
- RelOps.cs
- BaseParaClient.cs
- DelegatingMessage.cs
- ListControlDataBindingHandler.cs
- RadioButton.cs
- RepeaterItemCollection.cs
- CaseExpr.cs
- XamlTreeBuilderBamlRecordWriter.cs
- RangeBaseAutomationPeer.cs
- EntityContainer.cs
- DbProviderFactoriesConfigurationHandler.cs
- RichTextBoxConstants.cs
- ObjectStateEntry.cs
- GeneralTransform3D.cs
- SafeFileMappingHandle.cs
- StringSorter.cs
- BasicBrowserDialog.cs
- SafeRightsManagementHandle.cs
- ListBoxAutomationPeer.cs
- TabItem.cs
- CursorConverter.cs
- RegexGroup.cs
- CodeTypeConstructor.cs
- ReferencedType.cs
- OutputCacheProfileCollection.cs
- DataControlField.cs
- TextModifier.cs
- CodeNamespace.cs
- IBuiltInEvidence.cs
- HyperLinkField.cs
- SID.cs
- MsmqProcessProtocolHandler.cs
- TypeName.cs
- NumericExpr.cs
- Registry.cs
- Message.cs
- MimePart.cs
- LabelLiteral.cs
- PersistenceProvider.cs
- DebugHandleTracker.cs
- COSERVERINFO.cs
- WindowsAuthenticationEventArgs.cs
- ButtonFlatAdapter.cs
- HttpCookie.cs
- Cursors.cs
- And.cs
- webclient.cs
- BitmapSource.cs
- FramingFormat.cs
- ToolboxItemCollection.cs
- EditorZoneAutoFormat.cs
- ButtonFlatAdapter.cs
- UserNameSecurityTokenProvider.cs
- ToolStripItemCollection.cs
- AvtEvent.cs
- LiteralTextContainerControlBuilder.cs
- Misc.cs
- RuntimeWrappedException.cs
- DecimalAnimationBase.cs
- XomlDesignerLoader.cs
- Adorner.cs
- LoginUtil.cs
- StyleXamlParser.cs
- Faults.cs
- AppPool.cs
- PageRanges.cs
- UrlMappingsModule.cs
- Imaging.cs
- Parser.cs
- NativeMethods.cs
- BasicHttpMessageCredentialType.cs
- DetectRunnableInstancesTask.cs
- MethodToken.cs
- HttpCapabilitiesSectionHandler.cs
- MappingModelBuildProvider.cs
- PersistChildrenAttribute.cs
- ConsumerConnectionPointCollection.cs
- SqlNotificationEventArgs.cs
- ItemChangedEventArgs.cs
- SQLMoneyStorage.cs
- EntityDataSourceView.cs
- activationcontext.cs
- TypeDelegator.cs
- XmlDataSourceNodeDescriptor.cs
- FeatureAttribute.cs
- DeferredElementTreeState.cs
- WindowAutomationPeer.cs
- EditorPart.cs
- DataMemberConverter.cs