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
- InkCanvasSelection.cs
- SizeAnimationClockResource.cs
- _SSPISessionCache.cs
- DataGridViewCellLinkedList.cs
- RawKeyboardInputReport.cs
- SecUtil.cs
- FileDialog.cs
- SqlGatherProducedAliases.cs
- AbstractSvcMapFileLoader.cs
- RowToFieldTransformer.cs
- ImageListStreamer.cs
- SpnegoTokenProvider.cs
- ColorTransformHelper.cs
- CounterSampleCalculator.cs
- ToolboxBitmapAttribute.cs
- MappedMetaModel.cs
- Int32CAMarshaler.cs
- MenuScrollingVisibilityConverter.cs
- KnowledgeBase.cs
- ComplexPropertyEntry.cs
- FloaterParaClient.cs
- FullTextLine.cs
- EmptyEnumerable.cs
- WebEventCodes.cs
- TransformCryptoHandle.cs
- QueryStringParameter.cs
- XmlBindingWorker.cs
- nulltextcontainer.cs
- WindowsEditBoxRange.cs
- SharedPersonalizationStateInfo.cs
- AmbientLight.cs
- Translator.cs
- WebPartHeaderCloseVerb.cs
- dataprotectionpermission.cs
- XmlTextReaderImpl.cs
- EncoderExceptionFallback.cs
- OdbcConnectionString.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- StringFormat.cs
- CustomAttributeFormatException.cs
- RepeaterItem.cs
- PageSetupDialog.cs
- LazyTextWriterCreator.cs
- Memoizer.cs
- SelectionRangeConverter.cs
- TableItemStyle.cs
- OdbcRowUpdatingEvent.cs
- ReachFixedPageSerializerAsync.cs
- Int16Storage.cs
- WebSysDescriptionAttribute.cs
- TdsParserSessionPool.cs
- CollectionBase.cs
- Header.cs
- ProcessHostServerConfig.cs
- GroupQuery.cs
- WebServiceClientProxyGenerator.cs
- DataGridTextBoxColumn.cs
- ExpressionDumper.cs
- _SpnDictionary.cs
- BoolExpressionVisitors.cs
- ExtendLockCommand.cs
- ModelUIElement3D.cs
- IndexOutOfRangeException.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- OletxDependentTransaction.cs
- X509InitiatorCertificateClientElement.cs
- CachingParameterInspector.cs
- WmlLabelAdapter.cs
- WriteStateInfoBase.cs
- ObjectDataSourceSelectingEventArgs.cs
- MethodCallTranslator.cs
- WebPartCatalogAddVerb.cs
- DataGridViewCellStyleBuilderDialog.cs
- httpserverutility.cs
- ProcessHostServerConfig.cs
- WebPartDescriptionCollection.cs
- TemplateBamlRecordReader.cs
- FunctionCommandText.cs
- CurrencyWrapper.cs
- BamlStream.cs
- DataGridState.cs
- XmlBufferReader.cs
- DataViewManagerListItemTypeDescriptor.cs
- UriTemplateLiteralQueryValue.cs
- JpegBitmapEncoder.cs
- ContentValidator.cs
- ButtonBase.cs
- BufferedMessageWriter.cs
- WebPartDeleteVerb.cs
- _SslStream.cs
- DispatcherProcessingDisabled.cs
- SchemaLookupTable.cs
- ResourceDictionaryCollection.cs
- Base64Encoder.cs
- GeneralTransform3DGroup.cs
- followingquery.cs
- XmlnsCache.cs
- CreateWorkflowOwnerCommand.cs
- PrintDialogDesigner.cs
- ExeContext.cs