Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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(); } } } // 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.InitiateShutdown(); } } } // 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
- TaskScheduler.cs
- Opcode.cs
- SqlGatherProducedAliases.cs
- LongMinMaxAggregationOperator.cs
- activationcontext.cs
- ColorComboBox.cs
- WeakRefEnumerator.cs
- XmlWrappingReader.cs
- JournalEntry.cs
- PresentationTraceSources.cs
- BadImageFormatException.cs
- ButtonBase.cs
- EditingScope.cs
- ConfigurationStrings.cs
- FileDialogPermission.cs
- TreeViewCancelEvent.cs
- ToolboxComponentsCreatedEventArgs.cs
- TextMetrics.cs
- WebPartManager.cs
- RightsManagementPermission.cs
- SchemaCollectionCompiler.cs
- ElementNotAvailableException.cs
- NotImplementedException.cs
- TypeExtension.cs
- ButtonBase.cs
- PenContext.cs
- SecurityPolicySection.cs
- TextBreakpoint.cs
- EventMappingSettingsCollection.cs
- Executor.cs
- TypedReference.cs
- StateDesigner.Helpers.cs
- Int32Storage.cs
- BmpBitmapEncoder.cs
- DoubleConverter.cs
- OrderByBuilder.cs
- ModuleConfigurationInfo.cs
- BitmapPalettes.cs
- FormViewCommandEventArgs.cs
- CaseStatement.cs
- DataViewSetting.cs
- TrackingRecord.cs
- Knowncolors.cs
- PrintingPermissionAttribute.cs
- IdentityReference.cs
- MediaContextNotificationWindow.cs
- PinnedBufferMemoryStream.cs
- CommandHelpers.cs
- EntryWrittenEventArgs.cs
- TextTreeInsertElementUndoUnit.cs
- MouseGestureValueSerializer.cs
- StagingAreaInputItem.cs
- XPathSelfQuery.cs
- PageVisual.cs
- MimeAnyImporter.cs
- DataGridViewComboBoxColumnDesigner.cs
- SudsCommon.cs
- CompilationLock.cs
- Camera.cs
- BufferBuilder.cs
- PrimitiveDataContract.cs
- Single.cs
- QilNode.cs
- XmlTypeAttribute.cs
- ToolStripButton.cs
- ClientSettingsStore.cs
- WindowsRegion.cs
- SpAudioStreamWrapper.cs
- cookiecontainer.cs
- BitArray.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- Quaternion.cs
- SafeCertificateStore.cs
- WebPartConnectionsCloseVerb.cs
- COMException.cs
- EventLogHandle.cs
- nulltextcontainer.cs
- SessionStateModule.cs
- LogicalTreeHelper.cs
- BufferModesCollection.cs
- ConsumerConnectionPoint.cs
- WebAdminConfigurationHelper.cs
- InvalidFilterCriteriaException.cs
- ClientConfigurationHost.cs
- ConditionChanges.cs
- FormatException.cs
- XmlText.cs
- LineServices.cs
- InsufficientMemoryException.cs
- ToolStripAdornerWindowService.cs
- PrePrepareMethodAttribute.cs
- SettingsPropertyWrongTypeException.cs
- ToolBarTray.cs
- IconConverter.cs
- HideDisabledControlAdapter.cs
- EventBookmark.cs
- PageBreakRecord.cs
- ScrollItemPattern.cs
- HtmlInputSubmit.cs
- ResourcePermissionBaseEntry.cs