Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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(); } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MDIControlStrip.cs
- bidPrivateBase.cs
- WebPartEditorCancelVerb.cs
- ByteAnimation.cs
- ClipboardProcessor.cs
- DataControlFieldCell.cs
- XmlWhitespace.cs
- SslSecurityTokenParameters.cs
- ImageList.cs
- Soap11ServerProtocol.cs
- BrowsableAttribute.cs
- DirectoryObjectSecurity.cs
- XmlSchemaValidator.cs
- XPathEmptyIterator.cs
- HandleRef.cs
- HtmlInputRadioButton.cs
- AttributeUsageAttribute.cs
- SqlSupersetValidator.cs
- NullableLongSumAggregationOperator.cs
- UpdateException.cs
- TransportSecurityHelpers.cs
- PointConverter.cs
- _HelperAsyncResults.cs
- Visual3DCollection.cs
- SqlGenerator.cs
- ViewManager.cs
- UrlAuthorizationModule.cs
- ToolboxItemSnapLineBehavior.cs
- SqlBulkCopyColumnMappingCollection.cs
- DiagnosticsConfiguration.cs
- QilPatternVisitor.cs
- TextTreeText.cs
- AccessControlEntry.cs
- cookiecontainer.cs
- ImportedNamespaceContextItem.cs
- AccessDataSourceDesigner.cs
- StrongNameKeyPair.cs
- ReferenceSchema.cs
- Module.cs
- OracleConnection.cs
- DoubleUtil.cs
- CommandEventArgs.cs
- XmlSerializer.cs
- TrustSection.cs
- HttpSessionStateBase.cs
- DbDataSourceEnumerator.cs
- DispatcherTimer.cs
- XmlSchemaComplexContentExtension.cs
- ContainerAction.cs
- CellConstant.cs
- DeviceContext2.cs
- ADConnectionHelper.cs
- SharedUtils.cs
- SourceSwitch.cs
- DivideByZeroException.cs
- XmlSchemaObject.cs
- IISMapPath.cs
- DataTablePropertyDescriptor.cs
- SmtpMail.cs
- DataGridPageChangedEventArgs.cs
- InstanceNormalEvent.cs
- SiteMapNodeCollection.cs
- CurrencyWrapper.cs
- DocumentPaginator.cs
- ChannelServices.cs
- DbTypeMap.cs
- URLString.cs
- dsa.cs
- RelationshipDetailsRow.cs
- documentation.cs
- SplitterCancelEvent.cs
- BindingOperations.cs
- CharacterBuffer.cs
- XamlSerializer.cs
- Touch.cs
- CharacterBuffer.cs
- EventLogPermission.cs
- ListViewSelectEventArgs.cs
- RoutingService.cs
- KnownIds.cs
- SharedConnectionWorkflowTransactionService.cs
- UnknownWrapper.cs
- MarkupExtensionSerializer.cs
- VarInfo.cs
- StateManagedCollection.cs
- IndependentAnimationStorage.cs
- ObjectFullSpanRewriter.cs
- OrderedDictionary.cs
- DbgCompiler.cs
- RoutedEventArgs.cs
- PropertyValueChangedEvent.cs
- SoapAttributes.cs
- Point3DValueSerializer.cs
- TextReader.cs
- ButtonBaseAutomationPeer.cs
- QEncodedStream.cs
- CodeDomConfigurationHandler.cs
- PropertyEmitter.cs
- SQLInt64Storage.cs
- Boolean.cs