Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / 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. //------------------------------------------------------------------------------ //// 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
- _ProxyChain.cs
- XmlSchemaType.cs
- EntityConnection.cs
- querybuilder.cs
- WebPageTraceListener.cs
- CustomAttributeFormatException.cs
- HashLookup.cs
- InputBindingCollection.cs
- XmlSerializerSection.cs
- RMPublishingDialog.cs
- XPathConvert.cs
- KeyConstraint.cs
- PersonalizationStateQuery.cs
- ZipIOBlockManager.cs
- EntityDataSourceDataSelectionPanel.cs
- XPathDocumentNavigator.cs
- SocketPermission.cs
- ListBox.cs
- XmlStreamedByteStreamReader.cs
- Events.cs
- RoutedCommand.cs
- RestClientProxyHandler.cs
- DetailsView.cs
- Semaphore.cs
- DataSourceSelectArguments.cs
- HttpException.cs
- DrawListViewColumnHeaderEventArgs.cs
- EntityDesignerBuildProvider.cs
- OracleInternalConnection.cs
- XPathDocument.cs
- BufferCache.cs
- ErrorHandler.cs
- NumericPagerField.cs
- DataGridViewCheckBoxColumn.cs
- DataGridViewComboBoxColumn.cs
- Typeface.cs
- MSAAWinEventWrap.cs
- SystemIPGlobalStatistics.cs
- OleDbWrapper.cs
- ReflectTypeDescriptionProvider.cs
- TabItem.cs
- DashStyles.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- invalidudtexception.cs
- IriParsingElement.cs
- MemberHolder.cs
- Send.cs
- DrawingContextWalker.cs
- ReverseComparer.cs
- HandlerBase.cs
- RSAPKCS1KeyExchangeFormatter.cs
- TextDocumentView.cs
- TextEndOfLine.cs
- CommandManager.cs
- AllowedAudienceUriElementCollection.cs
- DataGridViewCheckBoxCell.cs
- InputLanguage.cs
- BamlCollectionHolder.cs
- TransactionInterop.cs
- EarlyBoundInfo.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- ProtocolsConfiguration.cs
- SignerInfo.cs
- UInt64Converter.cs
- ObjectDataSourceEventArgs.cs
- XsdDuration.cs
- WindowsListViewItemCheckBox.cs
- EmptyControlCollection.cs
- ObjectCache.cs
- OleDbSchemaGuid.cs
- ButtonChrome.cs
- CellQuery.cs
- LinkedResource.cs
- XmlAnyElementAttribute.cs
- ResXFileRef.cs
- ColumnMapTranslator.cs
- TreeNodeBinding.cs
- RewritingPass.cs
- ExtentKey.cs
- _ChunkParse.cs
- arabicshape.cs
- ContextProperty.cs
- FixedSOMPageConstructor.cs
- WebControlAdapter.cs
- TCPListener.cs
- regiisutil.cs
- ThreadInterruptedException.cs
- HttpWebResponse.cs
- ConfigurationPropertyCollection.cs
- FontStyleConverter.cs
- LeftCellWrapper.cs
- AspNetHostingPermission.cs
- documentsequencetextview.cs
- ErrorTableItemStyle.cs
- BuildManagerHost.cs
- WebControlAdapter.cs
- TypefaceCollection.cs
- HttpClientCertificate.cs
- OSFeature.cs
- PackagePart.cs