Code:
/ DotNET / DotNET / 8.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
- TreeViewImageKeyConverter.cs
- BaseTemplateBuildProvider.cs
- GetCardDetailsRequest.cs
- AssemblyNameProxy.cs
- Point3DCollection.cs
- FormViewRow.cs
- RtfToXamlLexer.cs
- ThrowHelper.cs
- BuildDependencySet.cs
- WebPartMenu.cs
- WorkflowInstanceExtensionProvider.cs
- Accessors.cs
- XmlSchemaImport.cs
- ParserContext.cs
- DataGrid.cs
- FixedSOMLineRanges.cs
- ColumnCollection.cs
- Image.cs
- XamlReaderConstants.cs
- LambdaCompiler.ControlFlow.cs
- ElementAction.cs
- PreviewPrintController.cs
- RecordConverter.cs
- CurrencyWrapper.cs
- IdentifierService.cs
- CheckBoxList.cs
- newitemfactory.cs
- UncommonField.cs
- InheritanceAttribute.cs
- UserMapPath.cs
- QuestionEventArgs.cs
- PageThemeCodeDomTreeGenerator.cs
- ObjectList.cs
- HttpProcessUtility.cs
- TypeSemantics.cs
- XsltCompileContext.cs
- Tracking.cs
- Point3DAnimation.cs
- OdbcHandle.cs
- RepeaterItemCollection.cs
- X509SubjectKeyIdentifierClause.cs
- ToolStripRendererSwitcher.cs
- CalendarAutoFormatDialog.cs
- MediaCommands.cs
- SoapFault.cs
- RestrictedTransactionalPackage.cs
- CodeObject.cs
- MouseActionValueSerializer.cs
- ProtocolReflector.cs
- SerializationTrace.cs
- RegexFCD.cs
- PrintingPermission.cs
- LocalizationComments.cs
- FindCriteriaCD1.cs
- MissingFieldException.cs
- ChannelServices.cs
- MembershipPasswordException.cs
- XmlSerializerSection.cs
- ClientSettingsSection.cs
- VideoDrawing.cs
- OracleDataReader.cs
- CodeSubDirectory.cs
- WebPartRestoreVerb.cs
- TextBox.cs
- DiscoveryEndpointValidator.cs
- WindowsIdentity.cs
- DbProviderFactory.cs
- KeyFrames.cs
- XmlObjectSerializerWriteContext.cs
- RawStylusInputCustomData.cs
- ImageMap.cs
- DbExpressionBuilder.cs
- DownloadProgressEventArgs.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- SoapSchemaExporter.cs
- TextBox.cs
- CommandField.cs
- UnsafeNativeMethods.cs
- AspCompat.cs
- SmtpSection.cs
- coordinatorfactory.cs
- WindowsScroll.cs
- Parallel.cs
- SID.cs
- MessageDroppedTraceRecord.cs
- ResourcesChangeInfo.cs
- MarkupCompilePass2.cs
- PointConverter.cs
- SafeNativeMethods.cs
- HtmlEmptyTagControlBuilder.cs
- Pen.cs
- BuildProviderCollection.cs
- StrongNameKeyPair.cs
- NullPackagingPolicy.cs
- Camera.cs
- LocationUpdates.cs
- ManagementObjectCollection.cs
- SelectionManager.cs
- XmlNullResolver.cs
- ColumnPropertiesGroup.cs