Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- XamlClipboardData.cs
- ToolStripContainer.cs
- PageBuildProvider.cs
- JsonDeserializer.cs
- ConfigXmlText.cs
- GetPageCompletedEventArgs.cs
- HeaderedItemsControl.cs
- TokenBasedSet.cs
- SQLInt16Storage.cs
- RemoteEndpointMessageProperty.cs
- DataGridPageChangedEventArgs.cs
- TableItemPattern.cs
- UrlRoutingHandler.cs
- QilValidationVisitor.cs
- RightsManagementPermission.cs
- RoleGroupCollection.cs
- PageAdapter.cs
- DivideByZeroException.cs
- PDBReader.cs
- Propagator.cs
- Rfc2898DeriveBytes.cs
- DictionarySectionHandler.cs
- StatusBar.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- BaseAutoFormat.cs
- QualificationDataItem.cs
- Maps.cs
- DataGridViewRowCollection.cs
- SecurityRequiresReviewAttribute.cs
- Token.cs
- DbReferenceCollection.cs
- RecordsAffectedEventArgs.cs
- Rect3D.cs
- _CookieModule.cs
- CollectionViewSource.cs
- ForeignKeyConstraint.cs
- XmlSchemaObjectTable.cs
- ConstraintManager.cs
- WebPartExportVerb.cs
- BitmapImage.cs
- KeyboardInputProviderAcquireFocusEventArgs.cs
- RegexCaptureCollection.cs
- IERequestCache.cs
- DropAnimation.xaml.cs
- BlurEffect.cs
- cookie.cs
- XmlElementCollection.cs
- ComboBox.cs
- EncodingDataItem.cs
- FormatterConverter.cs
- Codec.cs
- isolationinterop.cs
- WinEventTracker.cs
- CodeGroup.cs
- RTLAwareMessageBox.cs
- SettingsBase.cs
- TimeSpanValidatorAttribute.cs
- CollectionChangedEventManager.cs
- CopyAttributesAction.cs
- ShapingEngine.cs
- webbrowsersite.cs
- CodeArrayIndexerExpression.cs
- ProcessMessagesAsyncResult.cs
- RenderingBiasValidation.cs
- DataGridColumnCollection.cs
- EqualityComparer.cs
- CatalogPartCollection.cs
- CanExpandCollapseAllConverter.cs
- AuthenticationModulesSection.cs
- BasicCellRelation.cs
- QueryModel.cs
- IPEndPointCollection.cs
- FunctionDetailsReader.cs
- PageCatalogPart.cs
- GridViewDeletedEventArgs.cs
- StringSource.cs
- ListItem.cs
- LinqTreeNodeEvaluator.cs
- ToolboxItemFilterAttribute.cs
- TextEditorCharacters.cs
- SQLResource.cs
- XmlDictionaryString.cs
- DbProviderConfigurationHandler.cs
- InkCanvasFeedbackAdorner.cs
- Rect3D.cs
- PropertyInfoSet.cs
- Rules.cs
- WebReferenceOptions.cs
- AuthenticatingEventArgs.cs
- ButtonRenderer.cs
- ViewLoader.cs
- NegotiateStream.cs
- XPathSingletonIterator.cs
- AttributeEmitter.cs
- EventSinkHelperWriter.cs
- PropertyChangedEventArgs.cs
- LocationSectionRecord.cs
- LogRestartAreaEnumerator.cs
- SourceItem.cs
- DateTimeConstantAttribute.cs