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
- SafeTimerHandle.cs
- Attribute.cs
- SessionStateContainer.cs
- Int32Rect.cs
- ListDictionary.cs
- HtmlWindowCollection.cs
- ItemDragEvent.cs
- webeventbuffer.cs
- HttpListenerRequest.cs
- KeyNotFoundException.cs
- QueryReaderSettings.cs
- TableCell.cs
- WinEventTracker.cs
- ComplexBindingPropertiesAttribute.cs
- activationcontext.cs
- BitmapImage.cs
- BidOverLoads.cs
- MatrixStack.cs
- SimpleTableProvider.cs
- HwndKeyboardInputProvider.cs
- KnownTypeDataContractResolver.cs
- PenThread.cs
- XdrBuilder.cs
- FunctionImportElement.cs
- XmlDataCollection.cs
- DecimalAnimationBase.cs
- InternalCache.cs
- SessionState.cs
- SpAudioStreamWrapper.cs
- CharacterBuffer.cs
- XamlTreeBuilder.cs
- WebPartsPersonalization.cs
- httpserverutility.cs
- ToolboxItemFilterAttribute.cs
- WeakReference.cs
- GlyphingCache.cs
- CompareInfo.cs
- StreamReader.cs
- SoapAttributeOverrides.cs
- ApplicationException.cs
- CacheChildrenQuery.cs
- PeerConnector.cs
- DocumentApplicationJournalEntry.cs
- PageTextBox.cs
- QilStrConcatenator.cs
- EmptyStringExpandableObjectConverter.cs
- ListViewItemEventArgs.cs
- Pen.cs
- UdpMessageProperty.cs
- Stackframe.cs
- EditorPart.cs
- XmlSchemaIdentityConstraint.cs
- MsmqMessageSerializationFormat.cs
- FixedSOMFixedBlock.cs
- Stylus.cs
- DataGridViewCellCancelEventArgs.cs
- ObjectStorage.cs
- DependencyPropertyAttribute.cs
- IDQuery.cs
- PerformanceCounterManager.cs
- DrawingContext.cs
- DataRowChangeEvent.cs
- MemberBinding.cs
- CustomTrackingQuery.cs
- RoamingStoreFileUtility.cs
- DesignerValidatorAdapter.cs
- Attributes.cs
- FileInfo.cs
- CorruptStoreException.cs
- XmlToDatasetMap.cs
- DecoderReplacementFallback.cs
- ArcSegment.cs
- XmlSerializableServices.cs
- OleDbInfoMessageEvent.cs
- StyleSelector.cs
- SqlWorkflowInstanceStore.cs
- TableItemProviderWrapper.cs
- GradientBrush.cs
- CompilerErrorCollection.cs
- Crc32Helper.cs
- WorkflowApplicationAbortedEventArgs.cs
- AssemblyBuilderData.cs
- SettingsProperty.cs
- Matrix.cs
- SamlNameIdentifierClaimResource.cs
- TraceListeners.cs
- SaveFileDialogDesigner.cs
- connectionpool.cs
- SuppressMessageAttribute.cs
- SamlAuthenticationClaimResource.cs
- Utils.cs
- wgx_commands.cs
- IMembershipProvider.cs
- DataGridViewButtonCell.cs
- ErrorRuntimeConfig.cs
- HttpCachePolicyElement.cs
- NullReferenceException.cs
- SafeNativeMethods.cs
- ResourceReferenceExpression.cs
- HttpResponse.cs