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
- IBuiltInEvidence.cs
- DataGridViewComboBoxCell.cs
- DbParameterHelper.cs
- DesignerMetadata.cs
- Selection.cs
- InfoCardMetadataExchangeClient.cs
- AsyncStreamReader.cs
- AuthenticatingEventArgs.cs
- SqlEnums.cs
- WebBrowser.cs
- MeshGeometry3D.cs
- Thread.cs
- FormViewUpdatedEventArgs.cs
- StringUtil.cs
- DataGridViewCellStyleConverter.cs
- WindowsSlider.cs
- List.cs
- CompletedAsyncResult.cs
- CommandBindingCollection.cs
- SQLBoolean.cs
- ObjectToIdCache.cs
- FormsAuthenticationUser.cs
- SoapAttributeOverrides.cs
- ResourcePool.cs
- ErrorRuntimeConfig.cs
- WebFormsRootDesigner.cs
- TextControl.cs
- SmiEventSink.cs
- IncrementalReadDecoders.cs
- StaticContext.cs
- StrokeNodeData.cs
- RevocationPoint.cs
- SqlNodeTypeOperators.cs
- DocumentGrid.cs
- ControlPropertyNameConverter.cs
- ViewStateAttachedPropertyFeature.cs
- NumberSubstitution.cs
- PageCatalogPart.cs
- IdentityReference.cs
- WebBrowserHelper.cs
- BasicExpressionVisitor.cs
- MembershipPasswordException.cs
- MultiSelectRootGridEntry.cs
- SyndicationDeserializer.cs
- TransformerTypeCollection.cs
- UndoManager.cs
- TextElementCollection.cs
- AbstractDataSvcMapFileLoader.cs
- newinstructionaction.cs
- MethodCallConverter.cs
- XmlProcessingInstruction.cs
- TextRangeProviderWrapper.cs
- InputBinding.cs
- OperationPerformanceCounters.cs
- XmlAttributeCollection.cs
- Int16Animation.cs
- Roles.cs
- TextSegment.cs
- ComponentSerializationService.cs
- DataGridViewControlCollection.cs
- CookieHandler.cs
- CloseCollectionAsyncResult.cs
- LookupNode.cs
- ExpressionParser.cs
- HttpProxyCredentialType.cs
- HttpPostedFileBase.cs
- DSASignatureDeformatter.cs
- Geometry3D.cs
- SetterBaseCollection.cs
- SerializationObjectManager.cs
- UnlockInstanceCommand.cs
- RestHandler.cs
- InkCanvasAutomationPeer.cs
- LayoutEditorPart.cs
- DbConnectionHelper.cs
- WebReferencesBuildProvider.cs
- FileSystemEventArgs.cs
- NamedElement.cs
- ConfigDefinitionUpdates.cs
- IListConverters.cs
- Array.cs
- CounterCreationDataCollection.cs
- CLSCompliantAttribute.cs
- PropertyKey.cs
- Pool.cs
- TdsEnums.cs
- AdRotator.cs
- Shared.cs
- UnmanagedBitmapWrapper.cs
- Accessible.cs
- CorrelationTokenTypeConvertor.cs
- ScrollBarAutomationPeer.cs
- BadImageFormatException.cs
- InteropExecutor.cs
- IInstanceTable.cs
- StaticFileHandler.cs
- ArglessEventHandlerProxy.cs
- MinMaxParagraphWidth.cs
- TemplatedMailWebEventProvider.cs
- Variable.cs