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
- SqlDataSourceEnumerator.cs
- CompositionDesigner.cs
- BinaryObjectReader.cs
- RandomNumberGenerator.cs
- StaticTextPointer.cs
- AttributeEmitter.cs
- PeerNearMe.cs
- FilterUserControlBase.cs
- WebBrowserNavigatedEventHandler.cs
- InvokeCompletedEventArgs.cs
- WebUtil.cs
- GridEntryCollection.cs
- BufferedGraphicsContext.cs
- Operand.cs
- CompilerHelpers.cs
- Line.cs
- IUnknownConstantAttribute.cs
- FullTextState.cs
- DeleteBookmarkScope.cs
- UserMapPath.cs
- SqlMultiplexer.cs
- CodeTypeMemberCollection.cs
- ExpressionEditorAttribute.cs
- ConnectionString.cs
- ConnectionsZone.cs
- XmlSchemaAny.cs
- OpCodes.cs
- FormatConvertedBitmap.cs
- TextProviderWrapper.cs
- DataGridAddNewRow.cs
- _NestedSingleAsyncResult.cs
- EtwProvider.cs
- PageRequestManager.cs
- SqlConnectionFactory.cs
- DataGridViewColumnHeaderCell.cs
- ItemDragEvent.cs
- IndicShape.cs
- ConnectionStringSettingsCollection.cs
- IMembershipProvider.cs
- FormParameter.cs
- FieldBuilder.cs
- CodeDefaultValueExpression.cs
- AuditLogLocation.cs
- WebPartPersonalization.cs
- MetadataArtifactLoader.cs
- StretchValidation.cs
- Base64Encoder.cs
- Highlights.cs
- TableCell.cs
- GetWinFXPath.cs
- Facet.cs
- ActivationService.cs
- FontFamilyValueSerializer.cs
- XamlToRtfParser.cs
- Win32.cs
- EraserBehavior.cs
- ArrayElementGridEntry.cs
- Operator.cs
- Rfc2898DeriveBytes.cs
- Event.cs
- SpeechUI.cs
- NumberFunctions.cs
- SocketAddress.cs
- XmlSchemaAny.cs
- PresentationSource.cs
- ServerIdentity.cs
- EndpointDiscoveryMetadataCD1.cs
- UpdateRecord.cs
- PeerToPeerException.cs
- MultiView.cs
- TabControlAutomationPeer.cs
- PrimaryKeyTypeConverter.cs
- PeerInvitationResponse.cs
- HelloMessage11.cs
- TextTreePropertyUndoUnit.cs
- ConnectionInterfaceCollection.cs
- MissingMemberException.cs
- SqlTrackingQuery.cs
- HttpHandlerActionCollection.cs
- DbDataSourceEnumerator.cs
- DataGridViewComboBoxColumn.cs
- AdapterUtil.cs
- CompressEmulationStream.cs
- ObjectStateManager.cs
- TrackingProvider.cs
- TaskExtensions.cs
- Vertex.cs
- CompoundFileStreamReference.cs
- RegisteredDisposeScript.cs
- TransactionTable.cs
- processwaithandle.cs
- NavigationWindowAutomationPeer.cs
- LineVisual.cs
- UriWriter.cs
- ErrorWrapper.cs
- DataRow.cs
- DataGridItem.cs
- ExceptionHelpers.cs
- TreeView.cs
- WebPartZoneBaseDesigner.cs