Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / IdleTimeoutMonitor.cs / 1305376 / 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.InitiateShutdownWithoutDemand(); } } } // 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
- CodeArgumentReferenceExpression.cs
- UserControl.cs
- GenericRootAutomationPeer.cs
- XmlWhitespace.cs
- IconEditor.cs
- StringKeyFrameCollection.cs
- GroupedContextMenuStrip.cs
- AdPostCacheSubstitution.cs
- DataGridViewUtilities.cs
- WebPartEditVerb.cs
- EncodingTable.cs
- InstanceHandleConflictException.cs
- CacheOutputQuery.cs
- SafeIUnknown.cs
- GuidelineCollection.cs
- XmlnsCompatibleWithAttribute.cs
- adornercollection.cs
- PersonalizationStateInfo.cs
- LineSegment.cs
- SqlFlattener.cs
- PreviewPrintController.cs
- sqlnorm.cs
- XmlSchemaGroupRef.cs
- DiscoveryDocumentSearchPattern.cs
- StrongNameKeyPair.cs
- TypeFieldSchema.cs
- SQLChars.cs
- entityreference_tresulttype.cs
- XmlDataImplementation.cs
- Pool.cs
- ViewStateChangedEventArgs.cs
- TreeNodeCollection.cs
- UInt16Storage.cs
- RawContentTypeMapper.cs
- Classification.cs
- ObjectDataSourceMethodEditor.cs
- coordinator.cs
- CellRelation.cs
- Region.cs
- CompilerGlobalScopeAttribute.cs
- DependencyPropertyAttribute.cs
- DataTemplate.cs
- PhysicalOps.cs
- FontFamilyConverter.cs
- ThemeableAttribute.cs
- SqlLiftWhereClauses.cs
- FtpRequestCacheValidator.cs
- NamedPipeTransportSecurity.cs
- DebugInfoExpression.cs
- DetailsViewCommandEventArgs.cs
- GenerateTemporaryTargetAssembly.cs
- PerformanceCounterPermissionEntryCollection.cs
- TextStore.cs
- InvalidProgramException.cs
- TextComposition.cs
- ManipulationCompletedEventArgs.cs
- OutputCacheSettings.cs
- ToolStripArrowRenderEventArgs.cs
- BamlStream.cs
- DbProviderManifest.cs
- Variant.cs
- VerificationAttribute.cs
- OutOfProcStateClientManager.cs
- DataTableNewRowEvent.cs
- DrawingGroup.cs
- CmsInterop.cs
- Util.cs
- XmlSchemas.cs
- FilterQuery.cs
- ImageConverter.cs
- WebPartConnectionsCancelVerb.cs
- TreeViewBindingsEditor.cs
- FontFamily.cs
- RegexGroup.cs
- Stacktrace.cs
- TextEffect.cs
- NavigationFailedEventArgs.cs
- HGlobalSafeHandle.cs
- FontDialog.cs
- RunWorkerCompletedEventArgs.cs
- UrlPropertyAttribute.cs
- AppLevelCompilationSectionCache.cs
- XamlToRtfParser.cs
- TraceListener.cs
- CqlParser.cs
- cookiecontainer.cs
- ProtectedConfiguration.cs
- AnnouncementEndpointElement.cs
- HwndKeyboardInputProvider.cs
- TrackBar.cs
- ConfigXmlAttribute.cs
- InkPresenterAutomationPeer.cs
- TimersDescriptionAttribute.cs
- SoapCommonClasses.cs
- FormsIdentity.cs
- MaskInputRejectedEventArgs.cs
- FontUnitConverter.cs
- HttpRequestMessageProperty.cs
- WebColorConverter.cs
- DrawTreeNodeEventArgs.cs