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
- Viewport3DVisual.cs
- LinearGradientBrush.cs
- PartialCachingAttribute.cs
- AuditLevel.cs
- SectionVisual.cs
- ResourceReferenceExpression.cs
- DataGridViewMethods.cs
- TextEndOfLine.cs
- UnsettableComboBox.cs
- StringConcat.cs
- BuildManager.cs
- smtpconnection.cs
- InheritanceAttribute.cs
- Debug.cs
- ImportCatalogPart.cs
- GeneralTransformGroup.cs
- FlowDecision.cs
- BitmapPalettes.cs
- SRGSCompiler.cs
- Expr.cs
- Composition.cs
- Symbol.cs
- XhtmlBasicCalendarAdapter.cs
- Normalizer.cs
- HtmlElementErrorEventArgs.cs
- ResourceFallbackManager.cs
- Inflater.cs
- DateTimeFormat.cs
- CompilerParameters.cs
- TypeExtensionConverter.cs
- BinarySerializer.cs
- Identifier.cs
- Selection.cs
- CommandTreeTypeHelper.cs
- ResourceDictionaryCollection.cs
- ButtonStandardAdapter.cs
- TypeContext.cs
- PointUtil.cs
- EdmToObjectNamespaceMap.cs
- ArithmeticException.cs
- Splitter.cs
- LinkUtilities.cs
- ProfileGroupSettings.cs
- SafeProcessHandle.cs
- SecureUICommand.cs
- BypassElement.cs
- CompoundFileIOPermission.cs
- ElementHostPropertyMap.cs
- RecipientInfo.cs
- Control.cs
- LicFileLicenseProvider.cs
- ValueSerializer.cs
- SafeNativeMemoryHandle.cs
- SerializationFieldInfo.cs
- RelatedView.cs
- CellRelation.cs
- COM2IDispatchConverter.cs
- PointLightBase.cs
- ConfigurationErrorsException.cs
- ReversePositionQuery.cs
- SQlBooleanStorage.cs
- IdentifierCollection.cs
- XslTransform.cs
- ContextMenu.cs
- TraceContextRecord.cs
- PropertyConverter.cs
- SimpleLine.cs
- CompilationUnit.cs
- DesignTableCollection.cs
- ProxyWebPartConnectionCollection.cs
- DataGridToolTip.cs
- PackWebResponse.cs
- SystemUnicastIPAddressInformation.cs
- RNGCryptoServiceProvider.cs
- ContextConfiguration.cs
- EqualityComparer.cs
- ValidationPropertyAttribute.cs
- Fonts.cs
- PropertyPath.cs
- ClientType.cs
- LinkedResource.cs
- DelegatedStream.cs
- PrimitiveSchema.cs
- RegionIterator.cs
- HandleExceptionArgs.cs
- DataControlFieldHeaderCell.cs
- HwndSourceParameters.cs
- AsmxEndpointPickerExtension.cs
- ExplicitDiscriminatorMap.cs
- ChildTable.cs
- ObjectCloneHelper.cs
- ActivationArguments.cs
- XmlComment.cs
- PreProcessInputEventArgs.cs
- validationstate.cs
- ProgressBarHighlightConverter.cs
- DetailsViewUpdateEventArgs.cs
- StreamedFramingRequestChannel.cs
- CatalogZone.cs
- TemplateParser.cs