Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / 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; // if (HostingEnvironment.BusyCount != 0) return; // if (DateTime.UtcNow <= LastEvent.Add(_idleTimeout)) return; // 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. //------------------------------------------------------------------------------ //// 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; // if (HostingEnvironment.BusyCount != 0) return; // if (DateTime.UtcNow <= LastEvent.Add(_idleTimeout)) return; // 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataControlField.cs
- VideoDrawing.cs
- AttachmentCollection.cs
- TraceLevelHelper.cs
- XmlSerializerVersionAttribute.cs
- PopupRootAutomationPeer.cs
- XslCompiledTransform.cs
- Helper.cs
- BamlBinaryWriter.cs
- CollectionTypeElement.cs
- TabPage.cs
- GridLength.cs
- PageCatalogPartDesigner.cs
- EpmContentSerializer.cs
- AssemblyAssociatedContentFileAttribute.cs
- AddToCollection.cs
- ArgumentOutOfRangeException.cs
- ConfigurationElementProperty.cs
- ControlIdConverter.cs
- UnsafeNativeMethodsCLR.cs
- MenuStrip.cs
- HotCommands.cs
- TextSerializer.cs
- AsyncCompletedEventArgs.cs
- AutomationTextAttribute.cs
- ByteStreamGeometryContext.cs
- HtmlShim.cs
- TextStore.cs
- ModifyActivitiesPropertyDescriptor.cs
- TextBox.cs
- ComboBoxItem.cs
- Thickness.cs
- SizeLimitedCache.cs
- ClientApiGenerator.cs
- BitmapEffectDrawing.cs
- AnonymousIdentificationModule.cs
- MetabaseSettings.cs
- SmiEventStream.cs
- PartitionResolver.cs
- PeerService.cs
- UniqueConstraint.cs
- M3DUtil.cs
- PointAnimationUsingKeyFrames.cs
- TransformerInfoCollection.cs
- NativeMethods.cs
- WebBrowsableAttribute.cs
- CachedPathData.cs
- XhtmlStyleClass.cs
- CollectionViewProxy.cs
- Int32EqualityComparer.cs
- PasswordBoxAutomationPeer.cs
- HitTestResult.cs
- StateItem.cs
- EntitySqlException.cs
- AvTrace.cs
- HexParser.cs
- _NetRes.cs
- VersionPair.cs
- StackBuilderSink.cs
- CookielessHelper.cs
- CodeExpressionCollection.cs
- EncoderFallback.cs
- ExpressionBinding.cs
- DocumentViewerAutomationPeer.cs
- DataRelationCollection.cs
- SqlCacheDependencyDatabase.cs
- ExpressionPrefixAttribute.cs
- SymLanguageVendor.cs
- ApplicationSecurityManager.cs
- CharKeyFrameCollection.cs
- JumpPath.cs
- DesignerActionKeyboardBehavior.cs
- MailBnfHelper.cs
- CodeGroup.cs
- FontFamily.cs
- EventDescriptorCollection.cs
- TraceSection.cs
- AcceleratedTokenProviderState.cs
- DataRow.cs
- HandlerBase.cs
- Cursors.cs
- ToolStripPanelRenderEventArgs.cs
- TripleDES.cs
- TextSimpleMarkerProperties.cs
- EntityException.cs
- BinaryMessageEncodingBindingElement.cs
- WebPartConnectVerb.cs
- RowBinding.cs
- ThaiBuddhistCalendar.cs
- NonSerializedAttribute.cs
- uribuilder.cs
- InkCanvasInnerCanvas.cs
- CommunicationObject.cs
- DocumentGrid.cs
- SecurityResources.cs
- EntityCommandExecutionException.cs
- AttributeCallbackBuilder.cs
- _NetworkingPerfCounters.cs
- Keyboard.cs
- WindowManager.cs