Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataTable.cs
- Properties.cs
- ThicknessConverter.cs
- XmlSerializerOperationGenerator.cs
- TranslateTransform3D.cs
- EditableLabelControl.cs
- ChtmlSelectionListAdapter.cs
- WebInvokeAttribute.cs
- OperationPickerDialog.cs
- SqlGatherProducedAliases.cs
- ToolBarButton.cs
- HttpRuntime.cs
- AdornerLayer.cs
- XmlCountingReader.cs
- IdentityManager.cs
- RenderDataDrawingContext.cs
- BoolExpr.cs
- Win32KeyboardDevice.cs
- BaseCollection.cs
- Point3DIndependentAnimationStorage.cs
- SecurityElement.cs
- ApplicationServiceHelper.cs
- CompilerScopeManager.cs
- Clipboard.cs
- XappLauncher.cs
- SqlDataReader.cs
- AccessDataSourceDesigner.cs
- TraceUtility.cs
- PageHandlerFactory.cs
- querybuilder.cs
- XmlChildNodes.cs
- HtmlInputText.cs
- SqlParameterizer.cs
- CodeGenerator.cs
- WebPartDisplayMode.cs
- WebPartChrome.cs
- TextStore.cs
- Line.cs
- TraceContext.cs
- XmlHierarchicalDataSourceView.cs
- HwndSourceKeyboardInputSite.cs
- UriExt.cs
- ValueTypeFixupInfo.cs
- ScrollBar.cs
- XhtmlBasicPhoneCallAdapter.cs
- DbMetaDataColumnNames.cs
- BlurEffect.cs
- XamlTemplateSerializer.cs
- ObjectDisposedException.cs
- KeyedPriorityQueue.cs
- XmlWhitespace.cs
- ClrProviderManifest.cs
- SqlClientMetaDataCollectionNames.cs
- FormViewDeletedEventArgs.cs
- Unit.cs
- FrameworkElementFactoryMarkupObject.cs
- UserPreferenceChangingEventArgs.cs
- LinkUtilities.cs
- TextBoxDesigner.cs
- DataRecordInfo.cs
- ToolStripCollectionEditor.cs
- ISAPIApplicationHost.cs
- DictionaryMarkupSerializer.cs
- SqlExpressionNullability.cs
- ChangeTracker.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- StrokeNode.cs
- QueryOptionExpression.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- WebBrowser.cs
- XslVisitor.cs
- WindowsBrush.cs
- TextBox.cs
- FileDialogCustomPlace.cs
- DifferencingCollection.cs
- DataRelation.cs
- StyleHelper.cs
- dsa.cs
- MinimizableAttributeTypeConverter.cs
- WebConfigurationHost.cs
- AssemblyFilter.cs
- dbenumerator.cs
- MatrixStack.cs
- Control.cs
- ClientUtils.cs
- CollectionType.cs
- TextEditorLists.cs
- SqlUtils.cs
- DiagnosticsConfiguration.cs
- DbProviderManifest.cs
- DynamicILGenerator.cs
- ExternalException.cs
- XmlSchemaValidator.cs
- FormattedText.cs
- SiteMapSection.cs
- webbrowsersite.cs
- ControlIdConverter.cs
- ExtractorMetadata.cs
- IntSumAggregationOperator.cs
- ConfigLoader.cs