Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- ListBindingHelper.cs
- XmlArrayItemAttribute.cs
- ProfileEventArgs.cs
- PointConverter.cs
- TypeFieldSchema.cs
- DataViewListener.cs
- Registration.cs
- PersonalizationEntry.cs
- BackgroundWorker.cs
- StandardOleMarshalObject.cs
- UserControlAutomationPeer.cs
- ItemChangedEventArgs.cs
- TextModifierScope.cs
- TextUtf8RawTextWriter.cs
- EditingScopeUndoUnit.cs
- PartBasedPackageProperties.cs
- MemberCollection.cs
- StrictModeSecurityHeaderElementInferenceEngine.cs
- FixedTextContainer.cs
- SqlRecordBuffer.cs
- PropertyTabAttribute.cs
- CrossContextChannel.cs
- AttachInfo.cs
- TypeLibConverter.cs
- FixedDocument.cs
- ForwardPositionQuery.cs
- EventHandlerList.cs
- TimeoutException.cs
- X509Certificate2Collection.cs
- StylusLogic.cs
- ReadOnlyAttribute.cs
- XmlStringTable.cs
- ServiceChannel.cs
- PermissionToken.cs
- SuppressMergeCheckAttribute.cs
- ToolStripPanel.cs
- BamlBinaryWriter.cs
- ProfileService.cs
- GridViewEditEventArgs.cs
- COM2PictureConverter.cs
- UInt64.cs
- HierarchicalDataSourceControl.cs
- FtpWebRequest.cs
- AssemblyCollection.cs
- IdentitySection.cs
- UidManager.cs
- SqlConnectionManager.cs
- odbcmetadatacollectionnames.cs
- ObjectQueryExecutionPlan.cs
- XmlTextReaderImplHelpers.cs
- GenericsInstances.cs
- SharedPerformanceCounter.cs
- Parsers.cs
- IriParsingElement.cs
- TextBox.cs
- WebPartZoneAutoFormat.cs
- TypeHelper.cs
- VectorAnimationBase.cs
- ToolStripDropDown.cs
- WeakReferenceList.cs
- InfoCardConstants.cs
- Glyph.cs
- SymbolEqualComparer.cs
- TextBlock.cs
- RectangleConverter.cs
- VectorCollection.cs
- UriSectionReader.cs
- HttpModulesSection.cs
- WinInet.cs
- Drawing.cs
- WebPartRestoreVerb.cs
- Trigger.cs
- NameValueCollection.cs
- CodeTryCatchFinallyStatement.cs
- IntegerValidator.cs
- ApplicationInfo.cs
- SqlExpressionNullability.cs
- Itemizer.cs
- CellConstant.cs
- GPStream.cs
- HttpCacheVaryByContentEncodings.cs
- BulletedList.cs
- ContextMenu.cs
- TemplateBuilder.cs
- BooleanExpr.cs
- Facet.cs
- DetailsViewActionList.cs
- SingleTagSectionHandler.cs
- _DigestClient.cs
- HtmlHead.cs
- DataBinder.cs
- wgx_exports.cs
- ContentPlaceHolderDesigner.cs
- DocumentEventArgs.cs
- MailBnfHelper.cs
- TextEndOfSegment.cs
- HyperLink.cs
- TextBox.cs
- FixedSOMTextRun.cs
- MenuRendererStandards.cs