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
- DataKeyArray.cs
- SafeFileMappingHandle.cs
- COM2ExtendedBrowsingHandler.cs
- VisualBrush.cs
- CommonGetThemePartSize.cs
- ContentFileHelper.cs
- PropertyRef.cs
- WmlValidationSummaryAdapter.cs
- MenuCommand.cs
- TransactionFilter.cs
- updatecommandorderer.cs
- SystemTcpStatistics.cs
- SchemaTableOptionalColumn.cs
- DataTrigger.cs
- IntSecurity.cs
- PathSegment.cs
- BindingCollection.cs
- UIntPtr.cs
- DoubleAnimationClockResource.cs
- SpecularMaterial.cs
- DesignerDataParameter.cs
- PKCS1MaskGenerationMethod.cs
- ItemDragEvent.cs
- DataServiceQueryProvider.cs
- ResolveMatchesApril2005.cs
- PageCache.cs
- XmlNodeList.cs
- Vector3DCollectionValueSerializer.cs
- DiscoveryDocumentLinksPattern.cs
- StylusPointDescription.cs
- ClockGroup.cs
- MouseActionConverter.cs
- ConfigXmlComment.cs
- CardSpaceException.cs
- AbstractSvcMapFileLoader.cs
- __TransparentProxy.cs
- DragStartedEventArgs.cs
- StrokeNodeEnumerator.cs
- DeferredBinaryDeserializerExtension.cs
- CodeMethodReturnStatement.cs
- SoapSchemaImporter.cs
- Thread.cs
- HostedHttpTransportManager.cs
- SchemaTableOptionalColumn.cs
- AssemblyUtil.cs
- DictionaryGlobals.cs
- GifBitmapEncoder.cs
- ListView.cs
- securestring.cs
- RuntimeConfigLKG.cs
- SecurityTokenRequirement.cs
- CompilerInfo.cs
- DataSourceHelper.cs
- KeyValueSerializer.cs
- ContractMethodParameterInfo.cs
- LicenseException.cs
- RewritingSimplifier.cs
- TextureBrush.cs
- FormsAuthenticationCredentials.cs
- UnsafeNativeMethodsPenimc.cs
- PasswordBox.cs
- ObjectSet.cs
- httpstaticobjectscollection.cs
- BounceEase.cs
- WebPartsSection.cs
- UIElement.cs
- WebCategoryAttribute.cs
- Filter.cs
- TcpProcessProtocolHandler.cs
- Evaluator.cs
- ControlCommandSet.cs
- RegionIterator.cs
- ReadOnlyHierarchicalDataSourceView.cs
- OdbcCommand.cs
- ArrayTypeMismatchException.cs
- RemoveFromCollection.cs
- Terminate.cs
- ConfigurationSettings.cs
- DynamicMethod.cs
- RolePrincipal.cs
- LedgerEntry.cs
- ControlAdapter.cs
- DivideByZeroException.cs
- TextUtf8RawTextWriter.cs
- LineServicesRun.cs
- IdentitySection.cs
- CompilationRelaxations.cs
- XsltContext.cs
- DnsElement.cs
- PageAdapter.cs
- DataTemplateSelector.cs
- DeviceContexts.cs
- SchemaElement.cs
- mediaclock.cs
- WorkflowServiceBehavior.cs
- BoolLiteral.cs
- DbConnectionOptions.cs
- ColorTransformHelper.cs
- StringAttributeCollection.cs
- HtmlInputImage.cs