Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SiteMap.cs
- ToolStripArrowRenderEventArgs.cs
- X509Utils.cs
- ThreadInterruptedException.cs
- DataGridItem.cs
- ExpressionBindings.cs
- BufferedWebEventProvider.cs
- ConfigurationLocationCollection.cs
- EncodingInfo.cs
- ActivityBindForm.Designer.cs
- CodeDesigner.cs
- LocalClientSecuritySettings.cs
- TextCollapsingProperties.cs
- HwndAppCommandInputProvider.cs
- MsmqInputChannelListener.cs
- HttpCapabilitiesBase.cs
- SqlStatistics.cs
- MobileControlsSectionHelper.cs
- FontSourceCollection.cs
- BaseCAMarshaler.cs
- ItemList.cs
- ProxyHelper.cs
- BindableAttribute.cs
- TemplatingOptionsDialog.cs
- CodeDomConfigurationHandler.cs
- LiteralLink.cs
- dataobject.cs
- MarkerProperties.cs
- PackagePart.cs
- CoordinationService.cs
- TCPListener.cs
- PtsHelper.cs
- WmpBitmapDecoder.cs
- ErrorEventArgs.cs
- SignatureDescription.cs
- Range.cs
- DescendantBaseQuery.cs
- ResetableIterator.cs
- ServiceDurableInstanceContextProvider.cs
- UIElementCollection.cs
- SafeIUnknown.cs
- NumberFormatter.cs
- ButtonDesigner.cs
- ToolboxItemCollection.cs
- GlobalizationSection.cs
- Camera.cs
- TemplateColumn.cs
- StateManagedCollection.cs
- RegistrySecurity.cs
- DynamicRendererThreadManager.cs
- SingleConverter.cs
- CachedRequestParams.cs
- CodeSubDirectory.cs
- ObfuscationAttribute.cs
- ClientScriptManagerWrapper.cs
- XmlEventCache.cs
- KeyGestureValueSerializer.cs
- ReadOnlyCollectionBase.cs
- BezierSegment.cs
- ZipIOBlockManager.cs
- TopClause.cs
- RangeEnumerable.cs
- AttributeAction.cs
- RenderContext.cs
- GridPatternIdentifiers.cs
- TextPatternIdentifiers.cs
- MatrixTransform.cs
- CodeDelegateInvokeExpression.cs
- NavigatingCancelEventArgs.cs
- MultiTrigger.cs
- Splitter.cs
- ZoomPercentageConverter.cs
- PrimaryKeyTypeConverter.cs
- XmlValidatingReaderImpl.cs
- FixedTextPointer.cs
- WebBrowserEvent.cs
- MDIClient.cs
- PrintDialog.cs
- Model3DGroup.cs
- JsonSerializer.cs
- RangeBaseAutomationPeer.cs
- RoutedEventValueSerializer.cs
- ThemeableAttribute.cs
- ActiveXMessageFormatter.cs
- ParserOptions.cs
- TypeNameConverter.cs
- MSAANativeProvider.cs
- _SpnDictionary.cs
- AdCreatedEventArgs.cs
- TcpSocketManager.cs
- WindowsEditBoxRange.cs
- DataGridTextBoxColumn.cs
- SimpleBitVector32.cs
- HttpRuntimeSection.cs
- CancelRequestedRecord.cs
- DetailsViewDesigner.cs
- Duration.cs
- SapiAttributeParser.cs
- Privilege.cs
- Serializer.cs