Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / RunTime / ExecutorLocksHeldException.cs / 1305376 / ExecutorLocksHeldException.cs
// **************************************************************************** // Copyright (C) 2000-2001 Microsoft Corporation. All rights reserved. // // CONTENTS // Workflow Base exception class // // DESCRIPTION // Base class for WINOE Runtime engine exception // // REVISIONS // Date Ver By Remarks // ~~~~~~~~~~ ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~ // 03/08/01 1.0 [....] Created. // *************************************************************************** using System; using System.Runtime.Serialization; using System.Security.Permissions; using System.Collections.Generic; using System.Globalization; using System.Threading; using System.Workflow; using System.Workflow.Runtime; using System.Workflow.ComponentModel; namespace System.Workflow.Runtime { /* * The Unload() method has been changed so that * any Unload requests made while in the middle of an atomic * transaction wait for the atomic transaction to complete. * This makes use of an ManualResetEvent. Unload() waits on the event: * theEvent.WaitOne() * But waiting with the executor and scheduler locks held * will block everything else. * * The solution is to have a custom internal exception class that has the * ManualResetEvent as an internal property. If Unload() finds itself in the middle * of an atomic transaction, it throws the Exception. The Exception is propogated upwards * until we reach the method that was the first to grab the executor lock. * * We then drop that lock and wait on the event handle. As soon as the handle is * Set() by DisposeTransaction(), we grab the executor lock and do everything all over. */ internal class ExecutorLocksHeldException : Exception { private ManualResetEvent handle; public ExecutorLocksHeldException(ManualResetEvent handle) { this.handle = handle; } internal ManualResetEvent Handle { get { return handle; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. // **************************************************************************** // Copyright (C) 2000-2001 Microsoft Corporation. All rights reserved. // // CONTENTS // Workflow Base exception class // // DESCRIPTION // Base class for WINOE Runtime engine exception // // REVISIONS // Date Ver By Remarks // ~~~~~~~~~~ ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~ // 03/08/01 1.0 [....] Created. // *************************************************************************** using System; using System.Runtime.Serialization; using System.Security.Permissions; using System.Collections.Generic; using System.Globalization; using System.Threading; using System.Workflow; using System.Workflow.Runtime; using System.Workflow.ComponentModel; namespace System.Workflow.Runtime { /* * The Unload() method has been changed so that * any Unload requests made while in the middle of an atomic * transaction wait for the atomic transaction to complete. * This makes use of an ManualResetEvent. Unload() waits on the event: * theEvent.WaitOne() * But waiting with the executor and scheduler locks held * will block everything else. * * The solution is to have a custom internal exception class that has the * ManualResetEvent as an internal property. If Unload() finds itself in the middle * of an atomic transaction, it throws the Exception. The Exception is propogated upwards * until we reach the method that was the first to grab the executor lock. * * We then drop that lock and wait on the event handle. As soon as the handle is * Set() by DisposeTransaction(), we grab the executor lock and do everything all over. */ internal class ExecutorLocksHeldException : Exception { private ManualResetEvent handle; public ExecutorLocksHeldException(ManualResetEvent handle) { this.handle = handle; } internal ManualResetEvent Handle { get { return handle; } } } } // 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
- RestHandlerFactory.cs
- SQLByteStorage.cs
- MsmqIntegrationMessageProperty.cs
- ClipboardData.cs
- BulletChrome.cs
- ListBoxAutomationPeer.cs
- XsdBuildProvider.cs
- StrongNameUtility.cs
- BinaryFormatterWriter.cs
- ResourceReferenceExpression.cs
- RemoteWebConfigurationHost.cs
- Unit.cs
- FlowLayoutPanel.cs
- DocumentPageTextView.cs
- OutOfMemoryException.cs
- UnknownMessageReceivedEventArgs.cs
- PrintDocument.cs
- DesignerView.xaml.cs
- FtpRequestCacheValidator.cs
- FixUp.cs
- CacheMemory.cs
- XmlDocumentSerializer.cs
- SystemIPInterfaceStatistics.cs
- SignedXml.cs
- CodeTypeParameter.cs
- WindowsProgressbar.cs
- SmtpDigestAuthenticationModule.cs
- FilteredDataSetHelper.cs
- TextServicesHost.cs
- MemberListBinding.cs
- OperandQuery.cs
- NameValueConfigurationCollection.cs
- Function.cs
- initElementDictionary.cs
- StylusEditingBehavior.cs
- FormViewModeEventArgs.cs
- ServiceProviders.cs
- ProxyAttribute.cs
- SQLDateTime.cs
- TypeForwardedFromAttribute.cs
- datacache.cs
- TileBrush.cs
- UserNamePasswordClientCredential.cs
- ConfigXmlDocument.cs
- ClientFormsIdentity.cs
- ToolStripItemEventArgs.cs
- _SecureChannel.cs
- HeaderedContentControl.cs
- WorkflowControlEndpoint.cs
- TrustManagerMoreInformation.cs
- NonSerializedAttribute.cs
- ArrayConverter.cs
- BookmarkEventArgs.cs
- FilteredDataSetHelper.cs
- Module.cs
- Accessible.cs
- UserControl.cs
- MessageLoggingFilterTraceRecord.cs
- ParagraphResult.cs
- ColorContext.cs
- XmlWrappingReader.cs
- ListDictionary.cs
- DefinitionBase.cs
- PopupControlService.cs
- EntityStoreSchemaGenerator.cs
- EmissiveMaterial.cs
- Switch.cs
- DateTimeSerializationSection.cs
- Quaternion.cs
- CaseInsensitiveComparer.cs
- BooleanExpr.cs
- PropertiesTab.cs
- TypeNameConverter.cs
- DeobfuscatingStream.cs
- Geometry3D.cs
- RunInstallerAttribute.cs
- MasterPageCodeDomTreeGenerator.cs
- WindowsScrollBarBits.cs
- CompositeDataBoundControl.cs
- RelatedImageListAttribute.cs
- ColumnBinding.cs
- LoadItemsEventArgs.cs
- DataGridViewRowsRemovedEventArgs.cs
- DetailsViewUpdateEventArgs.cs
- IsolatedStorageFileStream.cs
- ToolZoneDesigner.cs
- ControlAdapter.cs
- Int16.cs
- XmlSchemaSimpleType.cs
- RecognitionEventArgs.cs
- WebHttpSecurity.cs
- WebPartZoneBase.cs
- PocoEntityKeyStrategy.cs
- XmlSchemaObject.cs
- _AutoWebProxyScriptHelper.cs
- SamlDoNotCacheCondition.cs
- ConvertEvent.cs
- InnerItemCollectionView.cs
- Ipv6Element.cs
- TimeEnumHelper.cs