Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Util / SafeBitVector32.cs / 1 / SafeBitVector32.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Threading; namespace System.Web.Util { // // 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 int IntegerValue { get { return _data; } set { #pragma warning disable 0420 Interlocked.Exchange(ref _data, value); #pragma warning restore 0420 } } #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; } } } } internal bool ChangeValue(int bit, bool value) { for (;;) { int oldData = _data; int newData; if (value) { newData = oldData | bit; } else { newData = oldData & ~bit; } if (oldData == newData) { return false; } #pragma warning disable 0420 int result = Interlocked.CompareExchange(ref _data, newData, oldData); #pragma warning restore 0420 if (result == oldData) { return true; } } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SafeTimerHandle.cs
- MenuAdapter.cs
- oledbmetadatacollectionnames.cs
- DataGridViewImageColumn.cs
- TransformerTypeCollection.cs
- Directory.cs
- CssTextWriter.cs
- SerializationEventsCache.cs
- RegisteredScript.cs
- PageAsyncTaskManager.cs
- Transform3DGroup.cs
- FolderBrowserDialog.cs
- PolygonHotSpot.cs
- ItemCollection.cs
- XamlFilter.cs
- DiscardableAttribute.cs
- XsdCachingReader.cs
- WindowsTreeView.cs
- WebZone.cs
- TabControl.cs
- UIElementAutomationPeer.cs
- KerberosReceiverSecurityToken.cs
- CodeExpressionCollection.cs
- DependencyObjectPropertyDescriptor.cs
- ListComponentEditor.cs
- SafeArrayRankMismatchException.cs
- BaseCollection.cs
- WebSysDisplayNameAttribute.cs
- SqlClientPermission.cs
- DuplexClientBase.cs
- PropertyPathConverter.cs
- SettingsPropertyWrongTypeException.cs
- VisualCollection.cs
- FacetValueContainer.cs
- Point.cs
- ScrollItemProviderWrapper.cs
- AdCreatedEventArgs.cs
- ClipboardProcessor.cs
- XmlLoader.cs
- CatalogZone.cs
- PrintEvent.cs
- EncoderBestFitFallback.cs
- XslTransform.cs
- StringUtil.cs
- CreateUserErrorEventArgs.cs
- FileDialog_Vista_Interop.cs
- ActivationArguments.cs
- PrimitiveXmlSerializers.cs
- ChooseAction.cs
- LogLogRecordHeader.cs
- SqlDataSourceQueryConverter.cs
- HtmlShim.cs
- ServicesUtilities.cs
- _TimerThread.cs
- AsnEncodedData.cs
- NodeLabelEditEvent.cs
- SmtpAuthenticationManager.cs
- IpcServerChannel.cs
- RegisteredArrayDeclaration.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- DataListItemCollection.cs
- LinearKeyFrames.cs
- PriorityRange.cs
- SoapExtensionReflector.cs
- ManifestBasedResourceGroveler.cs
- TraceContextRecord.cs
- TextReturnReader.cs
- ProcessInfo.cs
- EndpointAddressAugust2004.cs
- IndexedString.cs
- ThicknessKeyFrameCollection.cs
- KnownTypesHelper.cs
- DesignSurfaceServiceContainer.cs
- SettingsProviderCollection.cs
- DbgCompiler.cs
- XmlException.cs
- VectorAnimationUsingKeyFrames.cs
- ObjectSecurityT.cs
- BitmapEffectDrawing.cs
- XmlExtensionFunction.cs
- DataGridViewCellCollection.cs
- EventlogProvider.cs
- AndMessageFilterTable.cs
- BeginEvent.cs
- XmlILAnnotation.cs
- ObservableCollection.cs
- UrlMapping.cs
- DynamicPropertyHolder.cs
- FixedDocumentPaginator.cs
- PenThreadPool.cs
- TextEffect.cs
- XamlPathDataSerializer.cs
- WebPageTraceListener.cs
- SiteMapNodeItem.cs
- Panel.cs
- UnsafeNativeMethods.cs
- DictionarySectionHandler.cs
- MexNamedPipeBindingCollectionElement.cs
- ExtensionSurface.cs
- SynchronizationValidator.cs