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
- DataContractSerializerOperationGenerator.cs
- WorkflowApplicationEventArgs.cs
- basecomparevalidator.cs
- DataBoundControlHelper.cs
- KoreanCalendar.cs
- CallSite.cs
- ReaderContextStackData.cs
- EventRouteFactory.cs
- XmlDataSourceView.cs
- Buffer.cs
- RulePatternOps.cs
- NullableLongSumAggregationOperator.cs
- ProcessDesigner.cs
- RelationshipManager.cs
- ObjectList.cs
- Rotation3D.cs
- XamlWriter.cs
- FreezableOperations.cs
- ScrollItemPattern.cs
- Compress.cs
- CompoundFileReference.cs
- DataViewSetting.cs
- PauseStoryboard.cs
- UrlPropertyAttribute.cs
- DataBindingValueUIHandler.cs
- NavigationWindowAutomationPeer.cs
- ConfigXmlText.cs
- OLEDB_Util.cs
- EncoderBestFitFallback.cs
- HtmlProps.cs
- DocumentOutline.cs
- TableCellAutomationPeer.cs
- FontStyles.cs
- CompleteWizardStep.cs
- ErrorProvider.cs
- MaskedTextBoxTextEditorDropDown.cs
- CustomError.cs
- DeviceContexts.cs
- PageAdapter.cs
- ToolStripDropDown.cs
- ProtocolViolationException.cs
- XmlRawWriter.cs
- WindowsAuthenticationModule.cs
- EventArgs.cs
- DecimalStorage.cs
- XmlAtomErrorReader.cs
- TaskFactory.cs
- ParamArrayAttribute.cs
- ServicesUtilities.cs
- RuleElement.cs
- Timeline.cs
- RootProfilePropertySettingsCollection.cs
- ImageCodecInfoPrivate.cs
- VarRemapper.cs
- SqlDataSourceConfigureSortForm.cs
- TextUtf8RawTextWriter.cs
- MessageEncoderFactory.cs
- FileSystemWatcher.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- PostBackTrigger.cs
- TextSyndicationContentKindHelper.cs
- SingleObjectCollection.cs
- PropertyDescriptorCollection.cs
- CounterSetInstanceCounterDataSet.cs
- Nodes.cs
- StringExpressionSet.cs
- MetabaseServerConfig.cs
- ParseElement.cs
- Visual3D.cs
- EFTableProvider.cs
- XsltException.cs
- EventLogPermissionEntryCollection.cs
- ConfigPathUtility.cs
- HttpCacheParams.cs
- ListViewHitTestInfo.cs
- PtsContext.cs
- EventLogLink.cs
- objectquery_tresulttype.cs
- StyleHelper.cs
- SweepDirectionValidation.cs
- XmlCharType.cs
- BitmapEditor.cs
- RSAPKCS1SignatureFormatter.cs
- DelegatingStream.cs
- AesCryptoServiceProvider.cs
- Animatable.cs
- StreamingContext.cs
- Image.cs
- BuildManagerHost.cs
- WizardForm.cs
- DataViewSetting.cs
- FormsAuthenticationUser.cs
- InstalledVoice.cs
- ElementHostAutomationPeer.cs
- PopupEventArgs.cs
- PartialToken.cs
- Schema.cs
- RangeBaseAutomationPeer.cs
- DependencyObjectCodeDomSerializer.cs
- ReadOnlyCollectionBuilder.cs