Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / 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; // if (HostingEnvironment.BusyCount != 0) return; // if (DateTime.UtcNow <= LastEvent.Add(_idleTimeout)) return; // 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. //------------------------------------------------------------------------------ //// 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; // if (HostingEnvironment.BusyCount != 0) return; // if (DateTime.UtcNow <= LastEvent.Add(_idleTimeout)) return; // 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IdleTimeoutMonitor.cs
- HttpCacheParams.cs
- WeakEventManager.cs
- ChildrenQuery.cs
- DetailsViewPagerRow.cs
- CultureInfoConverter.cs
- XmlSerializationGeneratedCode.cs
- LocalizabilityAttribute.cs
- StylusPointDescription.cs
- RawStylusInputCustomData.cs
- ClientProxyGenerator.cs
- MenuItemStyleCollectionEditor.cs
- BitmapCacheBrush.cs
- Point3DKeyFrameCollection.cs
- ChannelOptions.cs
- DataControlButton.cs
- DesignerRegionMouseEventArgs.cs
- DataGridViewCellConverter.cs
- CalendarDataBindingHandler.cs
- SkipQueryOptionExpression.cs
- CodeSnippetTypeMember.cs
- TrustManager.cs
- StructureChangedEventArgs.cs
- HttpResponseBase.cs
- Link.cs
- Soap.cs
- ObjectCacheHost.cs
- ToolStripSeparatorRenderEventArgs.cs
- ElementUtil.cs
- InstanceValue.cs
- RegexCaptureCollection.cs
- DataGridDesigner.cs
- XPathDocument.cs
- BitmapEditor.cs
- CommentEmitter.cs
- ListViewItem.cs
- ArgumentNullException.cs
- HtmlElementEventArgs.cs
- FormViewPagerRow.cs
- CompoundFileStreamReference.cs
- ProjectionQueryOptionExpression.cs
- SettingsPropertyValue.cs
- DbParameterCollectionHelper.cs
- Helpers.cs
- BufferedMessageWriter.cs
- SpeakInfo.cs
- QueryableFilterRepeater.cs
- SystemFonts.cs
- OperationContextScope.cs
- TextEditorTables.cs
- XamlStyleSerializer.cs
- WorkflowTimerService.cs
- SynchronizationLockException.cs
- cache.cs
- TypeLoadException.cs
- XmlSchemaCollection.cs
- WinEventTracker.cs
- NonParentingControl.cs
- EndOfStreamException.cs
- FieldMetadata.cs
- PolicyImporterElement.cs
- OracleLob.cs
- ToolStripDropDownClosedEventArgs.cs
- ToolStripGrip.cs
- DateTimeConstantAttribute.cs
- HtmlMobileTextWriter.cs
- TypedTableBase.cs
- ActiveDocumentEvent.cs
- CodeRemoveEventStatement.cs
- ContainerUtilities.cs
- StringToken.cs
- DataBindingExpressionBuilder.cs
- ColumnWidthChangingEvent.cs
- TargetConverter.cs
- AnnotationMap.cs
- Variable.cs
- DbDataAdapter.cs
- TextEmbeddedObject.cs
- AstTree.cs
- PixelFormats.cs
- CurrencyManager.cs
- WindowsToolbarItemAsMenuItem.cs
- DataObjectMethodAttribute.cs
- MarginCollapsingState.cs
- ApplicationId.cs
- WriteableBitmap.cs
- sqlmetadatafactory.cs
- TextBoxRenderer.cs
- FontUnit.cs
- Encoder.cs
- DtdParser.cs
- StrongNameIdentityPermission.cs
- PrintDialog.cs
- SqlSelectClauseBuilder.cs
- ScriptBehaviorDescriptor.cs
- AccessViolationException.cs
- AtomServiceDocumentSerializer.cs
- SqlClientFactory.cs
- HttpWriter.cs
- BitmapEffectInputConnector.cs