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
- CredentialManagerDialog.cs
- initElementDictionary.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- RecognitionEventArgs.cs
- SetterBaseCollection.cs
- FileDialog_Vista_Interop.cs
- Frame.cs
- ExtensionDataObject.cs
- ExtensibleClassFactory.cs
- DaylightTime.cs
- DiscoveryClient.cs
- Error.cs
- JapaneseLunisolarCalendar.cs
- EventDriven.cs
- DllNotFoundException.cs
- SimpleApplicationHost.cs
- IgnoreFlushAndCloseStream.cs
- Registry.cs
- FilterQuery.cs
- _SingleItemRequestCache.cs
- ConfigurationSectionCollection.cs
- IsolatedStorage.cs
- CookieProtection.cs
- Brushes.cs
- IxmlLineInfo.cs
- DocumentScope.cs
- TargetConverter.cs
- Form.cs
- ListViewAutomationPeer.cs
- DataGridPageChangedEventArgs.cs
- SchemaCollectionPreprocessor.cs
- JoinCqlBlock.cs
- UnsignedPublishLicense.cs
- FlowNode.cs
- BinaryCommonClasses.cs
- TargetException.cs
- Converter.cs
- JapaneseLunisolarCalendar.cs
- CatalogPartChrome.cs
- MatrixTransform3D.cs
- MethodBuilderInstantiation.cs
- ShaderEffect.cs
- XNodeNavigator.cs
- OSFeature.cs
- ManifestResourceInfo.cs
- PlainXmlSerializer.cs
- HttpHandlerActionCollection.cs
- FragmentQuery.cs
- SessionStateSection.cs
- SecurityUtils.cs
- ObjectSecurityT.cs
- MarkupObject.cs
- PartitionResolver.cs
- MetadataArtifactLoaderFile.cs
- _AcceptOverlappedAsyncResult.cs
- CharStorage.cs
- SrgsElementList.cs
- ObjectViewFactory.cs
- DataGridHyperlinkColumn.cs
- tabpagecollectioneditor.cs
- GreenMethods.cs
- RepeatButton.cs
- SqlAggregateChecker.cs
- DrawingImage.cs
- XmlQuerySequence.cs
- ChildTable.cs
- GcSettings.cs
- XmlSchemaCollection.cs
- CharacterMetrics.cs
- Nullable.cs
- TableLayoutSettingsTypeConverter.cs
- SqlGenericUtil.cs
- TopClause.cs
- RawStylusInputReport.cs
- SafeLibraryHandle.cs
- EventRoute.cs
- ColumnHeaderConverter.cs
- SHA512Managed.cs
- ResourceType.cs
- CorrelationKey.cs
- InvalidPrinterException.cs
- AdornerDecorator.cs
- CompiledRegexRunner.cs
- RootProfilePropertySettingsCollection.cs
- CellTreeNode.cs
- ByteStream.cs
- QilExpression.cs
- AddInBase.cs
- SmiGettersStream.cs
- ProcessThreadCollection.cs
- AtlasWeb.Designer.cs
- SetUserPreferenceRequest.cs
- DataList.cs
- SHA256CryptoServiceProvider.cs
- InternalConfigSettingsFactory.cs
- Debugger.cs
- DNS.cs
- XmlDigitalSignatureProcessor.cs
- ContainerActivationHelper.cs
- SystemIPInterfaceProperties.cs