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
- CultureTable.cs
- DataServiceEntityAttribute.cs
- XpsS0ValidatingLoader.cs
- HttpFileCollection.cs
- TextShapeableCharacters.cs
- AnnotationAdorner.cs
- DataGridViewRowsRemovedEventArgs.cs
- DataBinder.cs
- ProfileEventArgs.cs
- RequestResponse.cs
- ProtocolsConfigurationEntry.cs
- TraceListener.cs
- ButtonChrome.cs
- EventProviderWriter.cs
- ItemContainerGenerator.cs
- SecurityPolicySection.cs
- DocumentViewerBaseAutomationPeer.cs
- SubclassTypeValidatorAttribute.cs
- LinqDataView.cs
- Variable.cs
- FatalException.cs
- TypeUtils.cs
- Point4D.cs
- CustomWebEventKey.cs
- TextureBrush.cs
- MouseActionValueSerializer.cs
- sqlpipe.cs
- RectKeyFrameCollection.cs
- SqlStatistics.cs
- HiddenField.cs
- EntityDataSourceStatementEditorForm.cs
- Timeline.cs
- CallbackValidator.cs
- OdbcParameter.cs
- dataprotectionpermission.cs
- SoapHeader.cs
- PersonalizationStateQuery.cs
- GrammarBuilderRuleRef.cs
- SecurityHelper.cs
- TraceContextEventArgs.cs
- ContravarianceAdapter.cs
- CacheMemory.cs
- ByteStorage.cs
- OSFeature.cs
- ConfigurationPermission.cs
- DrawingState.cs
- CompressStream.cs
- SystemIPv6InterfaceProperties.cs
- ClientSettingsSection.cs
- WinEventTracker.cs
- Lazy.cs
- SelectionChangedEventArgs.cs
- SvcMapFile.cs
- OperatingSystem.cs
- StylusPoint.cs
- SingleObjectCollection.cs
- ToolTip.cs
- WebDisplayNameAttribute.cs
- Aes.cs
- TagElement.cs
- OleDbDataReader.cs
- UrlUtility.cs
- TransactionException.cs
- AdapterUtil.cs
- DataSourceXmlSerializer.cs
- FormViewRow.cs
- ReferencedAssembly.cs
- MemberPath.cs
- PopupRoot.cs
- DataBoundControlHelper.cs
- StylusPointPropertyId.cs
- SqlWebEventProvider.cs
- SqlClientPermission.cs
- PixelFormatConverter.cs
- BidPrivateBase.cs
- DependencyObject.cs
- unsafenativemethodsother.cs
- URLAttribute.cs
- ConfigurationProviderException.cs
- WsatServiceAddress.cs
- Main.cs
- Variable.cs
- xmlglyphRunInfo.cs
- ObjectQueryProvider.cs
- SqlVersion.cs
- TypeSystem.cs
- ToolBarButtonDesigner.cs
- RSAPKCS1KeyExchangeFormatter.cs
- itemelement.cs
- basecomparevalidator.cs
- PartitionResolver.cs
- DesignerVerbCollection.cs
- WindowsUpDown.cs
- ResXResourceWriter.cs
- XamlTreeBuilder.cs
- IssuedSecurityTokenProvider.cs
- DispatchRuntime.cs
- Bold.cs
- XmlAttribute.cs
- FixedTextView.cs