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
- TripleDESCryptoServiceProvider.cs
- HijriCalendar.cs
- SafeNativeMethodsMilCoreApi.cs
- SqlHelper.cs
- PeerNameRecord.cs
- CheckBox.cs
- AttachedPropertyInfo.cs
- ModelService.cs
- AspNetSynchronizationContext.cs
- Semaphore.cs
- TextTreeDeleteContentUndoUnit.cs
- _KerberosClient.cs
- FormViewPageEventArgs.cs
- ImageMap.cs
- Variant.cs
- InteropBitmapSource.cs
- EdmFunction.cs
- BamlVersionHeader.cs
- _AuthenticationState.cs
- AnnotationMap.cs
- DataGridAddNewRow.cs
- XmlArrayAttribute.cs
- ChannelPoolSettings.cs
- DataReaderContainer.cs
- MissingMemberException.cs
- NumberSubstitution.cs
- RewritingPass.cs
- SingleTagSectionHandler.cs
- XmlWrappingReader.cs
- autovalidator.cs
- StrokeDescriptor.cs
- ReachDocumentSequenceSerializerAsync.cs
- X509Certificate2.cs
- ScaleTransform3D.cs
- RtfControls.cs
- CompositeDataBoundControl.cs
- DiagnosticsConfigurationHandler.cs
- IssuanceTokenProviderState.cs
- _ConnectOverlappedAsyncResult.cs
- PropertyKey.cs
- WorkflowViewStateService.cs
- SymbolType.cs
- BorderSidesEditor.cs
- ReadOnlyCollectionBase.cs
- DocumentPropertiesDialog.cs
- InteropTrackingRecord.cs
- ShapeTypeface.cs
- ServiceManagerHandle.cs
- TrackBar.cs
- CompiledXpathExpr.cs
- ChtmlTextWriter.cs
- ValidatorCollection.cs
- StyleXamlParser.cs
- DesignerSerializerAttribute.cs
- FontUnit.cs
- GridViewDeletedEventArgs.cs
- TemplateInstanceAttribute.cs
- NavigationProperty.cs
- BooleanStorage.cs
- PropertyConverter.cs
- SpeakCompletedEventArgs.cs
- SRDisplayNameAttribute.cs
- returneventsaver.cs
- CompatibleComparer.cs
- OdbcException.cs
- FormViewDeletedEventArgs.cs
- TreeNodeClickEventArgs.cs
- SoapTypeAttribute.cs
- MimeBasePart.cs
- DataGridViewHeaderCell.cs
- WorkflowOperationBehavior.cs
- Query.cs
- DataGridItem.cs
- SmiRequestExecutor.cs
- CompilerTypeWithParams.cs
- SqlDataRecord.cs
- IncrementalCompileAnalyzer.cs
- OleDbConnectionFactory.cs
- DbParameterHelper.cs
- StoreContentChangedEventArgs.cs
- IsolatedStorageFilePermission.cs
- RemotingServices.cs
- SizeF.cs
- SessionParameter.cs
- Debug.cs
- GeneralTransformCollection.cs
- PeerCollaboration.cs
- DeflateStream.cs
- WebBrowserContainer.cs
- WebBaseEventKeyComparer.cs
- SystemTcpConnection.cs
- FieldNameLookup.cs
- TypeInitializationException.cs
- ColumnMapProcessor.cs
- RequestCacheEntry.cs
- AttributeCollection.cs
- AutomationElementCollection.cs
- TextRunTypographyProperties.cs
- WindowsComboBox.cs
- FunctionImportMapping.cs