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
- UrlRoutingHandler.cs
- InputBindingCollection.cs
- ToolStripOverflow.cs
- Transform3D.cs
- XmlCharCheckingWriter.cs
- SpanIndex.cs
- MessageBodyMemberAttribute.cs
- IIS7UserPrincipal.cs
- StatusBar.cs
- Wizard.cs
- CFStream.cs
- PopupRootAutomationPeer.cs
- HtmlInputCheckBox.cs
- BitmapPalettes.cs
- DataControlHelper.cs
- FileDialog_Vista_Interop.cs
- DropSource.cs
- UniqueTransportManagerRegistration.cs
- StateChangeEvent.cs
- DecoderBestFitFallback.cs
- XsltException.cs
- TextWriterTraceListener.cs
- SoapEnumAttribute.cs
- TypeInformation.cs
- uribuilder.cs
- Propagator.cs
- BuiltInExpr.cs
- OdbcTransaction.cs
- Condition.cs
- ContextProperty.cs
- UserControlParser.cs
- FlowDocument.cs
- DataMisalignedException.cs
- CoTaskMemUnicodeSafeHandle.cs
- AsymmetricSignatureFormatter.cs
- CurrentTimeZone.cs
- CapabilitiesRule.cs
- ConvertTextFrag.cs
- CalendarAutoFormatDialog.cs
- XmlTextReaderImpl.cs
- ExtentCqlBlock.cs
- ObsoleteAttribute.cs
- SeparatorAutomationPeer.cs
- TreeNodeCollection.cs
- ComponentCommands.cs
- SpeakInfo.cs
- SqlProviderManifest.cs
- QuadraticBezierSegment.cs
- SiteOfOriginPart.cs
- SecurityTimestamp.cs
- ObjectPersistData.cs
- arc.cs
- FontEditor.cs
- SqlAliaser.cs
- WindowsRebar.cs
- FontCollection.cs
- Point3DCollectionValueSerializer.cs
- Part.cs
- CodeCatchClause.cs
- XmlAttribute.cs
- AsymmetricCryptoHandle.cs
- __TransparentProxy.cs
- XmlCharCheckingReader.cs
- SemaphoreFullException.cs
- ValuePattern.cs
- AnnotationHelper.cs
- IisTraceWebEventProvider.cs
- MediaTimeline.cs
- LineServicesRun.cs
- RectAnimationUsingKeyFrames.cs
- EntityTemplateFactory.cs
- CommonXSendMessage.cs
- SerializableTypeCodeDomSerializer.cs
- ValidationVisibilityAttribute.cs
- ValuePatternIdentifiers.cs
- PenContext.cs
- Schema.cs
- TextDpi.cs
- CqlQuery.cs
- TransactionWaitAsyncResult.cs
- BitmapEffectDrawing.cs
- Transform.cs
- SiteMapSection.cs
- AppLevelCompilationSectionCache.cs
- HostedHttpTransportManager.cs
- XsltLoader.cs
- StackSpiller.cs
- CodeLabeledStatement.cs
- HtmlToClrEventProxy.cs
- TextChangedEventArgs.cs
- translator.cs
- AssemblyHash.cs
- MultiTrigger.cs
- SchemaCollectionCompiler.cs
- ExtentJoinTreeNode.cs
- DES.cs
- DbConnectionFactory.cs
- UnmanagedMarshal.cs
- SerializationInfoEnumerator.cs
- DiscreteKeyFrames.cs