Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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(); } } } // 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.InitiateShutdown(); } } } // 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
- SoundPlayerAction.cs
- ContentType.cs
- CfgArc.cs
- LabelEditEvent.cs
- UpdateRecord.cs
- AsyncPostBackTrigger.cs
- StateRuntime.cs
- CodeCatchClauseCollection.cs
- TypeUsageBuilder.cs
- InkCanvasAutomationPeer.cs
- EncodingTable.cs
- DataServiceHostWrapper.cs
- datacache.cs
- XmlCompatibilityReader.cs
- ModelTreeManager.cs
- Clause.cs
- RoleService.cs
- XmlElementAttributes.cs
- ToolStripDropTargetManager.cs
- RunClient.cs
- DesigntimeLicenseContext.cs
- CompilerParameters.cs
- TextSchema.cs
- IsolatedStoragePermission.cs
- sqlinternaltransaction.cs
- InputLangChangeRequestEvent.cs
- InputLanguageEventArgs.cs
- DataGridState.cs
- RegexCaptureCollection.cs
- OleDbDataAdapter.cs
- WriteTimeStream.cs
- TimeSpanConverter.cs
- BitmapVisualManager.cs
- CryptoApi.cs
- ChannelDispatcher.cs
- regiisutil.cs
- ActiveXSite.cs
- SmiMetaData.cs
- Canvas.cs
- OracleTimeSpan.cs
- AsyncOperation.cs
- UpdatableGenericsFeature.cs
- TextTabProperties.cs
- TimelineGroup.cs
- FixedSOMTextRun.cs
- CellTreeNodeVisitors.cs
- PrintDocument.cs
- HttpBufferlessInputStream.cs
- SafeFileMapViewHandle.cs
- BuildProviderCollection.cs
- ReliableRequestSessionChannel.cs
- XmlValueConverter.cs
- ClientUtils.cs
- RowSpanVector.cs
- WorkflowMessageEventArgs.cs
- StyleCollectionEditor.cs
- ResourcesBuildProvider.cs
- WindowsToolbarAsMenu.cs
- DataGridColumnHeaderCollection.cs
- DataBindingCollection.cs
- FontStyle.cs
- CompareInfo.cs
- QilParameter.cs
- IndexObject.cs
- XPathParser.cs
- BitmapEffectGroup.cs
- GridLengthConverter.cs
- WindowsTooltip.cs
- SapiRecoInterop.cs
- HtmlTernaryTree.cs
- SmtpReplyReader.cs
- MenuItemAutomationPeer.cs
- PackageRelationshipCollection.cs
- TextDecoration.cs
- StorageFunctionMapping.cs
- MarkedHighlightComponent.cs
- TrackingMemoryStreamFactory.cs
- PathStreamGeometryContext.cs
- AssemblySettingAttributes.cs
- RectKeyFrameCollection.cs
- Italic.cs
- X509DefaultServiceCertificateElement.cs
- Matrix.cs
- ConstantProjectedSlot.cs
- CodeTypeReferenceCollection.cs
- FigureParagraph.cs
- XmlWrappingReader.cs
- WebPartEditorApplyVerb.cs
- CompressEmulationStream.cs
- XmlCustomFormatter.cs
- StyleReferenceConverter.cs
- FormConverter.cs
- SqlCachedBuffer.cs
- SafeNativeMethods.cs
- UserControlBuildProvider.cs
- XmlDataSourceView.cs
- Stack.cs
- TimelineGroup.cs
- metadatamappinghashervisitor.cs
- ComPlusInstanceProvider.cs