Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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(); } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SpellCheck.cs
- MobileControl.cs
- DataPagerFieldItem.cs
- KeyedHashAlgorithm.cs
- DesignerSerializationOptionsAttribute.cs
- MimeMapping.cs
- DirectoryNotFoundException.cs
- ResourceExpressionBuilder.cs
- Scene3D.cs
- ClientTarget.cs
- mil_commands.cs
- NodeFunctions.cs
- GPPOINTF.cs
- _SslStream.cs
- DbgUtil.cs
- OracleTimeSpan.cs
- MessageQueueTransaction.cs
- XamlTemplateSerializer.cs
- CodeObjectCreateExpression.cs
- VoiceInfo.cs
- InputReferenceExpression.cs
- TypeConverterAttribute.cs
- QilExpression.cs
- RuntimeConfigurationRecord.cs
- GeneratedView.cs
- ListControlDataBindingHandler.cs
- ConfigUtil.cs
- SqlGenerator.cs
- EmbeddedMailObject.cs
- SystemIcmpV4Statistics.cs
- MobileFormsAuthentication.cs
- AccessDataSourceDesigner.cs
- ProfileProvider.cs
- BuildDependencySet.cs
- FieldNameLookup.cs
- xmlglyphRunInfo.cs
- ListSourceHelper.cs
- recordstate.cs
- DependsOnAttribute.cs
- PolicyStatement.cs
- AuthorizationRuleCollection.cs
- BufferedGraphicsContext.cs
- CodeDelegateCreateExpression.cs
- ScrollChrome.cs
- DeviceFilterDictionary.cs
- CompareInfo.cs
- DocumentSequence.cs
- BaseProcessor.cs
- DocumentDesigner.cs
- OleDbWrapper.cs
- SafeHandle.cs
- XmlStreamedByteStreamReader.cs
- StreamMarshaler.cs
- SchemaConstraints.cs
- TextRenderer.cs
- XmlDocumentFieldSchema.cs
- PowerStatus.cs
- TimeoutException.cs
- TextParagraph.cs
- GridViewRowCollection.cs
- OrderedDictionary.cs
- InvalidComObjectException.cs
- Utils.cs
- Slider.cs
- SiteMapDataSourceView.cs
- TextServicesProperty.cs
- TraceUtility.cs
- TypedTableGenerator.cs
- FreezableDefaultValueFactory.cs
- Internal.cs
- EnumValidator.cs
- CoreSwitches.cs
- ParallelSeparator.xaml.cs
- TrustManagerPromptUI.cs
- IBuiltInEvidence.cs
- AssemblyInfo.cs
- SymmetricKey.cs
- CustomAttributeFormatException.cs
- GridItemCollection.cs
- DataRecordInternal.cs
- InvalidDataContractException.cs
- MetadataWorkspace.cs
- BrowserCapabilitiesFactoryBase.cs
- UniqueID.cs
- XPathDocumentBuilder.cs
- PlatformCulture.cs
- EpmCustomContentDeSerializer.cs
- WebPartZoneBase.cs
- BamlLocalizationDictionary.cs
- DataTableCollection.cs
- CrossContextChannel.cs
- TemplateApplicationHelper.cs
- Bookmark.cs
- MulticastOption.cs
- DataGridViewComboBoxEditingControl.cs
- IndependentAnimationStorage.cs
- EnumBuilder.cs
- NavigationProperty.cs
- JsonReaderWriterFactory.cs
- ResXResourceWriter.cs