Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- CompositeScriptReferenceEventArgs.cs
- RouteParser.cs
- BitmapPalettes.cs
- FlowDocumentPage.cs
- Dispatcher.cs
- FlowNode.cs
- WebBrowser.cs
- URI.cs
- XmlHelper.cs
- XamlRtfConverter.cs
- LockedAssemblyCache.cs
- MulticastNotSupportedException.cs
- StoryFragments.cs
- DuplicateWaitObjectException.cs
- LassoSelectionBehavior.cs
- VideoDrawing.cs
- ListenerAdapter.cs
- httpstaticobjectscollection.cs
- CellParagraph.cs
- MultiSelector.cs
- ComponentManagerBroker.cs
- LongCountAggregationOperator.cs
- LocatorGroup.cs
- MenuTracker.cs
- ClientSideProviderDescription.cs
- HttpStreamMessage.cs
- DataSourceExpressionCollection.cs
- FormsAuthenticationModule.cs
- WsdlInspector.cs
- BinaryKeyIdentifierClause.cs
- InputEventArgs.cs
- SqlDuplicator.cs
- Debugger.cs
- EntityDataSourceEntityTypeFilterItem.cs
- CompilerError.cs
- HostExecutionContextManager.cs
- EmbeddedMailObject.cs
- XmlSchemaInfo.cs
- QueryContinueDragEventArgs.cs
- XamlToRtfWriter.cs
- DbModificationCommandTree.cs
- GroupBox.cs
- XmlLinkedNode.cs
- TransactionFlowBindingElementImporter.cs
- Parser.cs
- SemanticResultValue.cs
- _NestedSingleAsyncResult.cs
- RangeBase.cs
- MenuScrollingVisibilityConverter.cs
- Cloud.cs
- pingexception.cs
- RewritingPass.cs
- MetadataArtifactLoaderFile.cs
- FontDialog.cs
- EntityModelBuildProvider.cs
- XmlValidatingReader.cs
- WorkflowMarkupElementEventArgs.cs
- CategoryValueConverter.cs
- Schema.cs
- TraversalRequest.cs
- CursorInteropHelper.cs
- MultipartIdentifier.cs
- RotateTransform3D.cs
- ExpressionConverter.cs
- RelationshipType.cs
- ObjectViewEntityCollectionData.cs
- SettingsPropertyNotFoundException.cs
- SoapObjectWriter.cs
- SortQuery.cs
- ConcurrentBag.cs
- StringDictionary.cs
- AsyncStreamReader.cs
- SerializationStore.cs
- KeyedQueue.cs
- CertificateManager.cs
- View.cs
- WithStatement.cs
- QueryCursorEventArgs.cs
- QilTernary.cs
- HebrewNumber.cs
- LambdaReference.cs
- XmlChoiceIdentifierAttribute.cs
- QilBinary.cs
- TemplateBindingExtensionConverter.cs
- CheckBox.cs
- ScaleTransform.cs
- ConditionCollection.cs
- DataViewManager.cs
- CompositeFontFamily.cs
- WebEvents.cs
- MsmqInputMessagePool.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- DataTemplate.cs
- RijndaelManaged.cs
- GraphicsContext.cs
- BeginEvent.cs
- DynamicPropertyHolder.cs
- DefaultTextStore.cs
- MappingItemCollection.cs
- HuffmanTree.cs