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
- BinHexDecoder.cs
- FormViewDeleteEventArgs.cs
- PropertyGridEditorPart.cs
- ObjectCacheSettings.cs
- JoinElimination.cs
- IxmlLineInfo.cs
- HostElement.cs
- MetadataPropertyAttribute.cs
- ConfigurationManagerInternalFactory.cs
- ServiceDurableInstanceContextProvider.cs
- DesignerValidationSummaryAdapter.cs
- CodeTypeDeclarationCollection.cs
- TextEndOfLine.cs
- XmlSchemaObjectCollection.cs
- odbcmetadatacollectionnames.cs
- SchemaElementDecl.cs
- BinaryMethodMessage.cs
- ValidationErrorCollection.cs
- SendingRequestEventArgs.cs
- TypeLibConverter.cs
- UInt16.cs
- ExtenderProvidedPropertyAttribute.cs
- OdbcDataReader.cs
- AsymmetricSecurityProtocolFactory.cs
- MobileUserControl.cs
- FileIOPermission.cs
- DataTableMappingCollection.cs
- OutputScopeManager.cs
- WindowsAuthenticationEventArgs.cs
- EncryptedKeyIdentifierClause.cs
- CodeNamespaceImport.cs
- BamlBinaryWriter.cs
- UnicastIPAddressInformationCollection.cs
- NotificationContext.cs
- SchemaImporterExtensionElementCollection.cs
- ListViewUpdateEventArgs.cs
- PlainXmlSerializer.cs
- Model3DCollection.cs
- CombinedGeometry.cs
- AdPostCacheSubstitution.cs
- WorkItem.cs
- WebControlParameterProxy.cs
- ViewLoader.cs
- ConfigXmlCDataSection.cs
- AsyncCompletedEventArgs.cs
- ActiveXContainer.cs
- BitmapMetadataEnumerator.cs
- SqlColumnizer.cs
- Mutex.cs
- HtmlShimManager.cs
- GuidelineCollection.cs
- WSIdentityFaultException.cs
- PathParser.cs
- SafeReversePInvokeHandle.cs
- RsaKeyIdentifierClause.cs
- InvokeSchedule.cs
- FixedStringLookup.cs
- ProtocolsSection.cs
- HorizontalAlignConverter.cs
- DesignerPerfEventProvider.cs
- XmlStringTable.cs
- Error.cs
- Padding.cs
- SystemIPAddressInformation.cs
- BaseConfigurationRecord.cs
- Point3D.cs
- SqlMethodAttribute.cs
- DATA_BLOB.cs
- Profiler.cs
- BinaryFormatter.cs
- DbProviderServices.cs
- VerificationException.cs
- CodeGenerator.cs
- CodeNamespaceImport.cs
- ControlDesigner.cs
- SqlBuilder.cs
- LineVisual.cs
- EpmCustomContentWriterNodeData.cs
- DataAdapter.cs
- XmlRootAttribute.cs
- ContentElementAutomationPeer.cs
- ComboBox.cs
- Lasso.cs
- MetricEntry.cs
- ResourceExpressionBuilder.cs
- RuntimeArgumentHandle.cs
- HttpTransportManager.cs
- ClientCultureInfo.cs
- GatewayDefinition.cs
- prompt.cs
- DefaultValueTypeConverter.cs
- PanelDesigner.cs
- UIElementParagraph.cs
- NavigatorInput.cs
- errorpatternmatcher.cs
- ActivationServices.cs
- NativeBuffer.cs
- RightsManagementLicense.cs
- ArrayHelper.cs
- SystemInfo.cs