Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / IdleTimeoutMonitor.cs / 1305376 / 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.InitiateShutdownWithoutDemand(); } } } // 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.InitiateShutdownWithoutDemand(); } } } // 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
- XmlBindingWorker.cs
- SqlExpressionNullability.cs
- dataprotectionpermission.cs
- GridViewRowEventArgs.cs
- PieceNameHelper.cs
- RuntimeWrappedException.cs
- ConcatQueryOperator.cs
- MailBnfHelper.cs
- SspiNegotiationTokenProviderState.cs
- XmlBinaryWriterSession.cs
- XmlWriterSettings.cs
- Menu.cs
- ConversionContext.cs
- TextPointerBase.cs
- HttpCapabilitiesSectionHandler.cs
- InputDevice.cs
- ConstructorBuilder.cs
- RegexStringValidator.cs
- SmiEventSink_Default.cs
- NTAccount.cs
- Annotation.cs
- AppDomainShutdownMonitor.cs
- MostlySingletonList.cs
- SubclassTypeValidator.cs
- GridViewRowEventArgs.cs
- SelectionItemProviderWrapper.cs
- XsdBuilder.cs
- DataListItemCollection.cs
- WinEventTracker.cs
- PersonalizationAdministration.cs
- MissingSatelliteAssemblyException.cs
- ActivityExecutor.cs
- BaseParser.cs
- BindingContext.cs
- XAMLParseException.cs
- SqlBuffer.cs
- FaultHandlingFilter.cs
- LinkedDataMemberFieldEditor.cs
- InstanceStoreQueryResult.cs
- EDesignUtil.cs
- OleDbDataReader.cs
- JsonDeserializer.cs
- __ComObject.cs
- FilteredReadOnlyMetadataCollection.cs
- EpmContentSerializer.cs
- DataDocumentXPathNavigator.cs
- ClientConfigurationSystem.cs
- DesignerActionVerbList.cs
- RecordsAffectedEventArgs.cs
- EdmProviderManifest.cs
- AutoResizedEvent.cs
- CLRBindingWorker.cs
- EdmFunctions.cs
- SmiRecordBuffer.cs
- Animatable.cs
- TableLayoutRowStyleCollection.cs
- FunctionDescription.cs
- _ListenerRequestStream.cs
- RegistryKey.cs
- FunctionMappingTranslator.cs
- Column.cs
- BulletedList.cs
- SmtpDigestAuthenticationModule.cs
- ToolboxComponentsCreatingEventArgs.cs
- SimpleTextLine.cs
- CommonProperties.cs
- ColorConvertedBitmap.cs
- MachineKeyConverter.cs
- WebPartDeleteVerb.cs
- PrintPreviewDialog.cs
- BufferedStream.cs
- TransferRequestHandler.cs
- XmlSchemaExporter.cs
- ToolboxBitmapAttribute.cs
- NonBatchDirectoryCompiler.cs
- InternalCache.cs
- WindowHideOrCloseTracker.cs
- XamlTypeMapper.cs
- DocumentViewerAutomationPeer.cs
- ExpressionSelection.cs
- ReliabilityContractAttribute.cs
- TlsSspiNegotiation.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- HostProtectionPermission.cs
- MatrixUtil.cs
- ResourceWriter.cs
- AssemblyAttributesGoHere.cs
- DataGridViewCellStateChangedEventArgs.cs
- KnownTypesHelper.cs
- DataGridBoolColumn.cs
- ToolStripItemCollection.cs
- XXXOnTypeBuilderInstantiation.cs
- SafeEventHandle.cs
- CompressEmulationStream.cs
- ChannelPoolSettingsElement.cs
- TextElementEditingBehaviorAttribute.cs
- PropertyDescriptors.cs
- DataGridViewSelectedCellCollection.cs
- ObjectSet.cs
- WindowsToolbarAsMenu.cs