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
- ProcessModelSection.cs
- Viewport3DVisual.cs
- LookupBindingPropertiesAttribute.cs
- TabRenderer.cs
- AxDesigner.cs
- IsolatedStorageException.cs
- NamespaceMapping.cs
- ClientConfigurationSystem.cs
- WebRequest.cs
- ObjectConverter.cs
- Process.cs
- SpeakProgressEventArgs.cs
- DataBoundControl.cs
- InternalBufferOverflowException.cs
- DbConnectionPoolOptions.cs
- InvalidAsynchronousStateException.cs
- XPathSelectionIterator.cs
- FlowDocumentPageViewerAutomationPeer.cs
- SqlXml.cs
- BufferedWebEventProvider.cs
- OdbcCommand.cs
- TableRowCollection.cs
- OneOfTypeConst.cs
- ServiceSecurityAuditBehavior.cs
- DataKeyArray.cs
- MailHeaderInfo.cs
- HttpDebugHandler.cs
- GridItem.cs
- FileLogRecord.cs
- ExpressionNode.cs
- ControlCachePolicy.cs
- DescendantQuery.cs
- BinaryConverter.cs
- CultureInfoConverter.cs
- PermissionSet.cs
- LambdaExpression.cs
- UnmanagedBitmapWrapper.cs
- UInt32Storage.cs
- XmlDeclaration.cs
- PerformanceCounterPermission.cs
- EditorReuseAttribute.cs
- EdmFunction.cs
- ListBox.cs
- RadioButtonBaseAdapter.cs
- OracleSqlParser.cs
- ScrollContentPresenter.cs
- SoapAttributes.cs
- ConnectionsZone.cs
- Membership.cs
- EntitySetBaseCollection.cs
- PasswordPropertyTextAttribute.cs
- ConcurrentStack.cs
- InstanceData.cs
- PermissionAttributes.cs
- InputLanguage.cs
- SessionIDManager.cs
- DrawingAttributesDefaultValueFactory.cs
- PersonalizationProviderHelper.cs
- FormViewRow.cs
- NavigationService.cs
- WebPartZoneBase.cs
- ColorConvertedBitmapExtension.cs
- SafeReversePInvokeHandle.cs
- AttributedMetaModel.cs
- LinqDataSourceUpdateEventArgs.cs
- DBCSCodePageEncoding.cs
- IsolatedStorageFilePermission.cs
- ListViewInsertedEventArgs.cs
- TextEditorContextMenu.cs
- SimpleFileLog.cs
- ActivityBuilderHelper.cs
- CodeStatement.cs
- Stackframe.cs
- TextViewSelectionProcessor.cs
- ProfilePropertyNameValidator.cs
- StandardToolWindows.cs
- EdgeModeValidation.cs
- ConnectionsZone.cs
- SingleSelectRootGridEntry.cs
- AnnotationAdorner.cs
- VariableAction.cs
- __FastResourceComparer.cs
- Expressions.cs
- oledbconnectionstring.cs
- HtmlTableCell.cs
- KeyToListMap.cs
- DataGridViewColumn.cs
- Registry.cs
- LogFlushAsyncResult.cs
- DataObjectAttribute.cs
- OdbcReferenceCollection.cs
- XmlAggregates.cs
- UserPreferenceChangedEventArgs.cs
- CalendarTable.cs
- StringAnimationBase.cs
- ApplicationProxyInternal.cs
- EntityWithChangeTrackerStrategy.cs
- SqlDataSourceQueryEditorForm.cs
- WindowsListViewGroupHelper.cs
- HttpServerUtilityWrapper.cs