Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Configuration / System / Configuration / SafeBitVector32.cs / 1 / SafeBitVector32.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
using System;
using System.Threading;
namespace System.Configuration {
//
// This is a multithreadsafe version of System.Collections.Specialized.BitVector32.
//
[Serializable]
internal struct SafeBitVector32 {
private volatile int _data;
internal SafeBitVector32(int data) {
this._data = data;
}
#if UNUSED_CODE
internal bool IsAnySet(int bitMask) {
int data = _data;
return (data & bitMask) != 0;
}
#endif
internal bool this[int bit] {
get {
int data = _data;
return (data & bit) == bit;
}
set {
for (;;) {
int oldData = _data;
int newData;
if (value) {
newData = oldData | bit;
}
else {
newData = oldData & ~bit;
}
#pragma warning disable 0420
int result = Interlocked.CompareExchange(ref _data, newData, oldData);
#pragma warning restore 0420
if (result == oldData) {
break;
}
}
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
using System;
using System.Threading;
namespace System.Configuration {
//
// This is a multithreadsafe version of System.Collections.Specialized.BitVector32.
//
[Serializable]
internal struct SafeBitVector32 {
private volatile int _data;
internal SafeBitVector32(int data) {
this._data = data;
}
#if UNUSED_CODE
internal bool IsAnySet(int bitMask) {
int data = _data;
return (data & bitMask) != 0;
}
#endif
internal bool this[int bit] {
get {
int data = _data;
return (data & bit) == bit;
}
set {
for (;;) {
int oldData = _data;
int newData;
if (value) {
newData = oldData | bit;
}
else {
newData = oldData & ~bit;
}
#pragma warning disable 0420
int result = Interlocked.CompareExchange(ref _data, newData, oldData);
#pragma warning restore 0420
if (result == oldData) {
break;
}
}
}
}
}
}
// 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
- MeshGeometry3D.cs
- Semaphore.cs
- ServiceCredentialsElement.cs
- RawStylusSystemGestureInputReport.cs
- AccessKeyManager.cs
- Win32NamedPipes.cs
- StylusPointDescription.cs
- SchemaCreator.cs
- DataGridDetailsPresenter.cs
- Errors.cs
- WebServiceFaultDesigner.cs
- FixedHighlight.cs
- ToolStripCodeDomSerializer.cs
- TextTreeTextBlock.cs
- DataSet.cs
- TargetException.cs
- WebUtil.cs
- MemberAccessException.cs
- ConditionCollection.cs
- SafeRightsManagementQueryHandle.cs
- InputLanguageManager.cs
- VirtualizedItemProviderWrapper.cs
- SettingsPropertyValueCollection.cs
- FloatSumAggregationOperator.cs
- RuleSetCollection.cs
- XomlCompilerHelpers.cs
- TextEditorCopyPaste.cs
- TextEffect.cs
- WorkerRequest.cs
- XmlIgnoreAttribute.cs
- PackUriHelper.cs
- BaseEntityWrapper.cs
- Compress.cs
- EventLogEntry.cs
- webbrowsersite.cs
- ApplicationServiceHelper.cs
- SoapAttributes.cs
- ServiceNameElementCollection.cs
- DataControlCommands.cs
- NamespaceEmitter.cs
- SHA1Managed.cs
- RectIndependentAnimationStorage.cs
- CapiSymmetricAlgorithm.cs
- DataAccessor.cs
- ActiveXHelper.cs
- MeasureItemEvent.cs
- DesignerDataStoredProcedure.cs
- WindowsScroll.cs
- Graphics.cs
- XAMLParseException.cs
- DataSetMappper.cs
- DataGridAutoFormatDialog.cs
- TraceSection.cs
- XmlHierarchicalEnumerable.cs
- CodeTypeDeclarationCollection.cs
- SemanticBasicElement.cs
- WebPartVerb.cs
- InsufficientMemoryException.cs
- ColumnReorderedEventArgs.cs
- ClientSettingsStore.cs
- Lease.cs
- webproxy.cs
- ApplicationTrust.cs
- WorkflowInspectionServices.cs
- EncoderNLS.cs
- InvalidAsynchronousStateException.cs
- CancelRequestedQuery.cs
- SourceChangedEventArgs.cs
- SQLUtility.cs
- RestHandler.cs
- FileUtil.cs
- StorageRoot.cs
- JapaneseCalendar.cs
- SQLGuid.cs
- CollectionChangeEventArgs.cs
- BindToObject.cs
- SmiContext.cs
- CurrentChangingEventManager.cs
- UnsafeNativeMethodsPenimc.cs
- ConfigXmlCDataSection.cs
- QueryAsyncResult.cs
- HtmlTableCellCollection.cs
- SqlBulkCopy.cs
- TextEditorCharacters.cs
- BinaryConverter.cs
- Compiler.cs
- Soap.cs
- MergePropertyDescriptor.cs
- PerspectiveCamera.cs
- ListControlBuilder.cs
- JavaScriptSerializer.cs
- LogicalTreeHelper.cs
- DrawingVisualDrawingContext.cs
- DesignTimeTemplateParser.cs
- HttpWebRequest.cs
- ChangesetResponse.cs
- QuaternionAnimationUsingKeyFrames.cs
- ProviderConnectionPointCollection.cs
- DefaultValueTypeConverter.cs
- NegotiateStream.cs