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
- MessageEventSubscriptionService.cs
- TextContainerChangeEventArgs.cs
- ValueType.cs
- NavigationHelper.cs
- TraceRecord.cs
- COMException.cs
- System.Data.OracleClient_BID.cs
- CancelEventArgs.cs
- WebBrowserUriTypeConverter.cs
- DBSchemaRow.cs
- StringSorter.cs
- StringWriter.cs
- TypeUtil.cs
- _ListenerRequestStream.cs
- EqualityComparer.cs
- XmlDictionaryString.cs
- IteratorDescriptor.cs
- CodeSnippetExpression.cs
- XComponentModel.cs
- GroupBox.cs
- IdentityHolder.cs
- SessionStateModule.cs
- WsrmFault.cs
- SpecularMaterial.cs
- ErrorBehavior.cs
- HitTestFilterBehavior.cs
- Pen.cs
- Command.cs
- SafeNativeMethods.cs
- AuthenticationService.cs
- OperationFormatter.cs
- QilGeneratorEnv.cs
- Logging.cs
- InvokeSchedule.cs
- WindowsClientCredential.cs
- SamlAuthorityBinding.cs
- NotFiniteNumberException.cs
- DataGridParentRows.cs
- RelationshipConverter.cs
- TraceData.cs
- UnsafeNativeMethods.cs
- StringUtil.cs
- Color.cs
- ListSortDescriptionCollection.cs
- IncrementalHitTester.cs
- HtmlControlDesigner.cs
- ProxyWebPart.cs
- SqlConnectionFactory.cs
- ToolboxCategoryItems.cs
- RelatedEnd.cs
- AnnouncementDispatcherAsyncResult.cs
- WebBrowserContainer.cs
- BoundingRectTracker.cs
- UrlMappingCollection.cs
- NameScope.cs
- ContextMenuAutomationPeer.cs
- WriteableBitmap.cs
- FrameSecurityDescriptor.cs
- CompositeScriptReference.cs
- SqlUtils.cs
- FileInfo.cs
- MarkupCompilePass2.cs
- MultiAsyncResult.cs
- _UncName.cs
- FormatterConverter.cs
- SmtpMail.cs
- DataGridViewComboBoxCell.cs
- TextEditorParagraphs.cs
- IsolatedStorageFile.cs
- MsmqOutputMessage.cs
- InputBindingCollection.cs
- NamespaceDecl.cs
- MasterPage.cs
- BaseTemplateBuildProvider.cs
- KnownBoxes.cs
- XmlSchemaInclude.cs
- Config.cs
- RemotingConfigParser.cs
- ScriptingProfileServiceSection.cs
- RequiredAttributeAttribute.cs
- PrincipalPermission.cs
- _HelperAsyncResults.cs
- TimeEnumHelper.cs
- EventLogPropertySelector.cs
- DataGridBoolColumn.cs
- ObservableCollection.cs
- KeyFrames.cs
- CustomError.cs
- XPathEmptyIterator.cs
- FigureParaClient.cs
- HttpInputStream.cs
- EventLogEntry.cs
- ConfigXmlComment.cs
- FontSource.cs
- MetadataException.cs
- Matrix3D.cs
- VideoDrawing.cs
- Trigger.cs
- FrameworkReadOnlyPropertyMetadata.cs
- ComponentRenameEvent.cs