Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / IdleTimeoutMonitor.cs / 1305376 / 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.InitiateShutdownWithoutDemand(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- InheritanceContextChangedEventManager.cs
- SqlConnectionPoolGroupProviderInfo.cs
- WorkflowElementDialog.cs
- Internal.cs
- CmsUtils.cs
- CssTextWriter.cs
- MatrixAnimationUsingPath.cs
- HttpDebugHandler.cs
- IdentitySection.cs
- SqlVisitor.cs
- DataPointer.cs
- OutKeywords.cs
- TextServicesDisplayAttribute.cs
- FixedTextView.cs
- FormViewRow.cs
- LockRenewalTask.cs
- WebFormDesignerActionService.cs
- GC.cs
- TextTreeTextElementNode.cs
- SqlDataSourceQueryConverter.cs
- SemaphoreSecurity.cs
- CreateUserWizard.cs
- LogicalExpr.cs
- MessageBox.cs
- SafeCryptHandles.cs
- AuthenticationSection.cs
- EntitySetBaseCollection.cs
- TemplateBuilder.cs
- StreamGeometry.cs
- TimeStampChecker.cs
- StrokeFIndices.cs
- PeerNameRecordCollection.cs
- DataMemberConverter.cs
- Vector3DAnimationBase.cs
- DataGridViewControlCollection.cs
- ExpressionWriter.cs
- CommandHelper.cs
- WebPageTraceListener.cs
- ResourceSetExpression.cs
- CompModSwitches.cs
- ApplicationFileCodeDomTreeGenerator.cs
- RecordManager.cs
- ClientSponsor.cs
- RubberbandSelector.cs
- PingOptions.cs
- CodeTryCatchFinallyStatement.cs
- ViewBox.cs
- XmlSchemas.cs
- XmlNodeChangedEventArgs.cs
- EntitySetRetriever.cs
- ToolStripOverflowButton.cs
- DiscoveryMessageSequence.cs
- SerializationHelper.cs
- EventLogEntryCollection.cs
- DeploymentExceptionMapper.cs
- DocumentPage.cs
- XhtmlBasicTextBoxAdapter.cs
- WebPartConnectionsConfigureVerb.cs
- ComPlusServiceHost.cs
- NameValueCollection.cs
- Path.cs
- SystemKeyConverter.cs
- SystemIcmpV4Statistics.cs
- Rss20FeedFormatter.cs
- SystemIPAddressInformation.cs
- CodeCastExpression.cs
- WorkflowService.cs
- ResourceDisplayNameAttribute.cs
- DataGridViewCheckBoxColumn.cs
- Native.cs
- CrossAppDomainChannel.cs
- XPathNodePointer.cs
- TimeSpanStorage.cs
- DataGridViewRowsAddedEventArgs.cs
- WindowsListViewItemStartMenu.cs
- DefaultTextStore.cs
- XmlSchemaSimpleContent.cs
- DescendantOverDescendantQuery.cs
- DataColumnCollection.cs
- StructuredType.cs
- Qualifier.cs
- BufferedStream.cs
- FlowDocument.cs
- WorkerProcess.cs
- ping.cs
- XmlSchemas.cs
- WebServicesSection.cs
- PageRequestManager.cs
- JapaneseCalendar.cs
- PackageStore.cs
- AngleUtil.cs
- DropSource.cs
- FilterQuery.cs
- LocationSectionRecord.cs
- DataGridViewDataErrorEventArgs.cs
- SystemFonts.cs
- ToolStripDropDownClosedEventArgs.cs
- StrongNameKeyPair.cs
- DoubleMinMaxAggregationOperator.cs
- PropertyFilterAttribute.cs