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
- SafeNativeMethods.cs
- WCFBuildProvider.cs
- FileLoadException.cs
- SafeNativeMethods.cs
- Mouse.cs
- DynamicHyperLink.cs
- QilName.cs
- ImportCatalogPart.cs
- ActivationServices.cs
- EndpointDiscoveryMetadata.cs
- glyphs.cs
- GrammarBuilderPhrase.cs
- CounterSet.cs
- SystemIPInterfaceStatistics.cs
- TaskFactory.cs
- MouseActionValueSerializer.cs
- PropertyTabChangedEvent.cs
- ExpressionBuilder.cs
- SoapFault.cs
- ISFTagAndGuidCache.cs
- DomainUpDown.cs
- ColumnMap.cs
- DataListItemEventArgs.cs
- DBConcurrencyException.cs
- Compilation.cs
- DynamicRenderer.cs
- DataServiceQuery.cs
- SystemIcmpV4Statistics.cs
- XhtmlConformanceSection.cs
- _DigestClient.cs
- VideoDrawing.cs
- GridViewRowCollection.cs
- VoiceChangeEventArgs.cs
- BookmarkWorkItem.cs
- DbCommandDefinition.cs
- ErrorLog.cs
- NamespaceEmitter.cs
- SoapRpcServiceAttribute.cs
- BinaryReader.cs
- TreeNode.cs
- StringSource.cs
- SvcMapFileLoader.cs
- ProviderCommandInfoUtils.cs
- EventItfInfo.cs
- SetIterators.cs
- MetadataCacheItem.cs
- PolyLineSegment.cs
- CompilationUtil.cs
- SizeAnimationUsingKeyFrames.cs
- TagNameToTypeMapper.cs
- EntityStoreSchemaFilterEntry.cs
- StopStoryboard.cs
- View.cs
- BindingCollection.cs
- FirstMatchCodeGroup.cs
- validationstate.cs
- TabControl.cs
- EarlyBoundInfo.cs
- GridViewPageEventArgs.cs
- RequestCachePolicyConverter.cs
- XmlSecureResolver.cs
- CustomPopupPlacement.cs
- _ListenerResponseStream.cs
- TableLayoutRowStyleCollection.cs
- ToolStripDesignerAvailabilityAttribute.cs
- SQLSingle.cs
- PersonalizationProviderCollection.cs
- EditorPartChrome.cs
- ViewStateException.cs
- ListBindingHelper.cs
- OleDbParameter.cs
- SmuggledIUnknown.cs
- PermissionSet.cs
- WebPermission.cs
- KnowledgeBase.cs
- DetailsViewActionList.cs
- FileEnumerator.cs
- ThemeDirectoryCompiler.cs
- Emitter.cs
- ConfigXmlElement.cs
- COMException.cs
- TextServicesContext.cs
- MergeFilterQuery.cs
- login.cs
- ReadOnlyTernaryTree.cs
- RecordsAffectedEventArgs.cs
- SafeNativeMethods.cs
- SqlErrorCollection.cs
- FileDetails.cs
- XpsDigitalSignature.cs
- StringStorage.cs
- ByteAnimationBase.cs
- DataGridViewDataConnection.cs
- GenericEnumConverter.cs
- DynamicPhysicalDiscoSearcher.cs
- StringComparer.cs
- SocketPermission.cs
- PathSegment.cs
- ResourceDisplayNameAttribute.cs
- SplayTreeNode.cs