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
- SerializeAbsoluteContext.cs
- FontCollection.cs
- RewritingSimplifier.cs
- ArgumentOutOfRangeException.cs
- Int64.cs
- XmlAtomicValue.cs
- WebUtil.cs
- EmptyEnumerator.cs
- AxImporter.cs
- Char.cs
- Stack.cs
- StylusPointCollection.cs
- RequestQueue.cs
- odbcmetadatafactory.cs
- HttpConfigurationSystem.cs
- DataGridViewTextBoxEditingControl.cs
- InternalMappingException.cs
- WebControl.cs
- WorkflowMarkupSerializer.cs
- ResXResourceReader.cs
- Permission.cs
- IPAddressCollection.cs
- InvalidCommandTreeException.cs
- ProgramPublisher.cs
- XmlElementCollection.cs
- TcpTransportSecurity.cs
- XmlAttributes.cs
- XmlArrayAttribute.cs
- datacache.cs
- ConsoleTraceListener.cs
- ItemsPresenter.cs
- XmlSchema.cs
- BridgeDataReader.cs
- XmlUrlResolver.cs
- InternalResources.cs
- DataGridViewCheckBoxColumn.cs
- LocatorPart.cs
- RequestDescription.cs
- TypeForwardedToAttribute.cs
- SurrogateSelector.cs
- StateRuntime.cs
- StringBlob.cs
- NGCUIElementCollectionSerializerAsync.cs
- PreDigestedSignedInfo.cs
- PerspectiveCamera.cs
- FormViewInsertEventArgs.cs
- TemplateBuilder.cs
- Validator.cs
- ComplusTypeValidator.cs
- Buffer.cs
- SpecularMaterial.cs
- TextTrailingCharacterEllipsis.cs
- ListViewInsertionMark.cs
- CompoundFileStorageReference.cs
- ALinqExpressionVisitor.cs
- UnicodeEncoding.cs
- SqlDataSourceCache.cs
- ProviderSettings.cs
- DeploymentSectionCache.cs
- ReleaseInstanceMode.cs
- DefaultAssemblyResolver.cs
- Thumb.cs
- VersionConverter.cs
- MsmqUri.cs
- XmlSerializerNamespaces.cs
- DockingAttribute.cs
- MsmqIntegrationSecurityElement.cs
- PolicyValidator.cs
- AnnotationMap.cs
- Blend.cs
- ContextProperty.cs
- StandardCommands.cs
- MeasureItemEvent.cs
- XmlHierarchyData.cs
- _NestedSingleAsyncResult.cs
- ArcSegment.cs
- WindowExtensionMethods.cs
- SQLDateTime.cs
- GPRECTF.cs
- ShapeTypeface.cs
- Relationship.cs
- QilTernary.cs
- CodeMemberProperty.cs
- FontWeights.cs
- MachineKeyConverter.cs
- DocumentReference.cs
- ListDictionary.cs
- NavigationCommands.cs
- OleDbCommand.cs
- ProjectionPathSegment.cs
- CompilerCollection.cs
- ColumnHeaderCollectionEditor.cs
- CollectionCodeDomSerializer.cs
- AnnouncementInnerClientCD1.cs
- InvalidDocumentContentsException.cs
- CompoundFileStreamReference.cs
- DiscreteKeyFrames.cs
- contentDescriptor.cs
- DashStyles.cs
- DaylightTime.cs