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
- IInstanceTable.cs
- HttpCachePolicy.cs
- ServiceRoute.cs
- RuntimeConfigLKG.cs
- CodeRegionDirective.cs
- TreeViewAutomationPeer.cs
- Tokenizer.cs
- HttpFileCollectionBase.cs
- ListSourceHelper.cs
- CoTaskMemUnicodeSafeHandle.cs
- Win32SafeHandles.cs
- MatrixAnimationUsingKeyFrames.cs
- IImplicitResourceProvider.cs
- EntityObject.cs
- FlatButtonAppearance.cs
- StandardToolWindows.cs
- ColorConverter.cs
- wmiprovider.cs
- DesignerCatalogPartChrome.cs
- InteropBitmapSource.cs
- StylusPointPropertyId.cs
- UpdateCommandGenerator.cs
- CodeStatement.cs
- PathSegment.cs
- EnvironmentPermission.cs
- RewritingProcessor.cs
- DLinqDataModelProvider.cs
- WSDualHttpBindingElement.cs
- PageCodeDomTreeGenerator.cs
- ClientSponsor.cs
- EventlogProvider.cs
- TextParaLineResult.cs
- CharacterShapingProperties.cs
- ArcSegment.cs
- AdRotatorDesigner.cs
- RequestCacheValidator.cs
- Funcletizer.cs
- DBParameter.cs
- SelectionRangeConverter.cs
- ApplicationContext.cs
- WebServiceFault.cs
- StringDictionaryWithComparer.cs
- HtmlInputReset.cs
- LabelDesigner.cs
- DeclaredTypeElement.cs
- Clock.cs
- Panel.cs
- DynamicUpdateCommand.cs
- HtmlUtf8RawTextWriter.cs
- XmlSchemaObject.cs
- DigestTraceRecordHelper.cs
- ComboBox.cs
- PersianCalendar.cs
- HtmlElementCollection.cs
- Int32CAMarshaler.cs
- CheckBoxField.cs
- ManagementClass.cs
- XXXInfos.cs
- TreeViewItem.cs
- XmlSchemaImport.cs
- XmlWriterDelegator.cs
- XmlObjectSerializerWriteContext.cs
- TransformerConfigurationWizardBase.cs
- PeerNearMe.cs
- EntityClientCacheKey.cs
- GridViewUpdatedEventArgs.cs
- CredentialSelector.cs
- HwndStylusInputProvider.cs
- Compress.cs
- DateTimeConverter2.cs
- MgmtResManager.cs
- FormatterConverter.cs
- SqlConnectionHelper.cs
- httpstaticobjectscollection.cs
- CodeNamespaceCollection.cs
- ByteConverter.cs
- HttpRequestCacheValidator.cs
- TypeReference.cs
- ContentElement.cs
- DynamicRendererThreadManager.cs
- webclient.cs
- AnonymousIdentificationSection.cs
- UInt32Storage.cs
- PathSegmentCollection.cs
- thaishape.cs
- CodeAssignStatement.cs
- ReachDocumentSequenceSerializer.cs
- StringUtil.cs
- KeyNotFoundException.cs
- _OverlappedAsyncResult.cs
- ModuleConfigurationInfo.cs
- RSAProtectedConfigurationProvider.cs
- CryptoProvider.cs
- TextWriter.cs
- SR.cs
- XmlStreamStore.cs
- ActiveXSite.cs
- IncrementalHitTester.cs
- SimpleWorkerRequest.cs
- SynchronousChannel.cs