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
- StubHelpers.cs
- DataGridViewCellLinkedList.cs
- RadialGradientBrush.cs
- NativeMethodsOther.cs
- ResourceManager.cs
- Validator.cs
- Matrix3DValueSerializer.cs
- AccessDataSource.cs
- WindowsGraphicsWrapper.cs
- SendKeys.cs
- DbDataSourceEnumerator.cs
- APCustomTypeDescriptor.cs
- BidPrivateBase.cs
- TypeNameParser.cs
- IsolatedStorageFilePermission.cs
- DescendentsWalker.cs
- DataGridCommandEventArgs.cs
- TextPointer.cs
- DataSourceComponent.cs
- ZipFileInfoCollection.cs
- GeneralTransformGroup.cs
- PrinterSettings.cs
- GatewayIPAddressInformationCollection.cs
- ModifiableIteratorCollection.cs
- PropertyItemInternal.cs
- ToolStripItemRenderEventArgs.cs
- ConditionalBranch.cs
- WebServiceReceiveDesigner.cs
- SkewTransform.cs
- FusionWrap.cs
- PreservationFileReader.cs
- DataBoundControl.cs
- ControlUtil.cs
- Misc.cs
- PluggableProtocol.cs
- ProcessModelInfo.cs
- ItemList.cs
- DescendantQuery.cs
- ResourceReader.cs
- ToolStripSettings.cs
- ToolZone.cs
- ParseHttpDate.cs
- TrustManagerPromptUI.cs
- CodeExpressionStatement.cs
- Context.cs
- CustomAttributeFormatException.cs
- Int64AnimationUsingKeyFrames.cs
- PasswordTextContainer.cs
- SystemUnicastIPAddressInformation.cs
- VoiceSynthesis.cs
- DtdParser.cs
- InvalidOperationException.cs
- FontFamily.cs
- FrugalMap.cs
- TitleStyle.cs
- DoubleCollection.cs
- ObjectMemberMapping.cs
- XmlProcessingInstruction.cs
- XmlSchemaSimpleTypeRestriction.cs
- Logging.cs
- AssociationEndMember.cs
- ToolStripHighContrastRenderer.cs
- FrameworkTemplate.cs
- DataGridAddNewRow.cs
- WpfWebRequestHelper.cs
- FormatterServices.cs
- NavigationWindow.cs
- SimpleBitVector32.cs
- DiscoveryServiceExtension.cs
- PolicyImporterElement.cs
- HttpResponseInternalBase.cs
- MonitoringDescriptionAttribute.cs
- ContainsRowNumberChecker.cs
- ProjectionNode.cs
- autovalidator.cs
- TreeBuilder.cs
- RsaSecurityTokenAuthenticator.cs
- IsolatedStorageFileStream.cs
- TimeSpan.cs
- TypedTableBaseExtensions.cs
- OdbcReferenceCollection.cs
- SystemResources.cs
- DataAdapter.cs
- RemotingAttributes.cs
- DataBinder.cs
- DynamicDataRoute.cs
- EmptyEnumerator.cs
- AsymmetricKeyExchangeDeformatter.cs
- CellConstantDomain.cs
- CacheMemory.cs
- DecoderFallbackWithFailureFlag.cs
- TreeBuilder.cs
- LogicalTreeHelper.cs
- PluralizationServiceUtil.cs
- XmlBinaryReader.cs
- HwndTarget.cs
- BindingValueChangedEventArgs.cs
- Opcode.cs
- SrgsItemList.cs
- ProxyGenerator.cs