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
- RunInstallerAttribute.cs
- DocumentXmlWriter.cs
- SafeMILHandle.cs
- GridViewHeaderRowPresenter.cs
- XmlILModule.cs
- XmlAnyElementAttribute.cs
- TextContainerHelper.cs
- XamlTypeMapper.cs
- PackWebResponse.cs
- DataGridViewLayoutData.cs
- CounterCreationData.cs
- OdbcErrorCollection.cs
- AstTree.cs
- AudienceUriMode.cs
- CompilerGlobalScopeAttribute.cs
- XamlStyleSerializer.cs
- ComponentEditorPage.cs
- EmptyStringExpandableObjectConverter.cs
- EventRoute.cs
- SqlInternalConnectionTds.cs
- SoapExtensionImporter.cs
- FormViewDeleteEventArgs.cs
- MimeMapping.cs
- Transaction.cs
- EtwTrackingBehavior.cs
- DataTableReader.cs
- ByteStreamGeometryContext.cs
- SchemaElementLookUpTable.cs
- BeginStoryboard.cs
- XmlEntity.cs
- DbExpressionRules.cs
- QuaternionKeyFrameCollection.cs
- AuthenticatingEventArgs.cs
- MenuItem.cs
- AvTraceDetails.cs
- WebPartConnectionsCloseVerb.cs
- DesignerLabelAdapter.cs
- CqlBlock.cs
- BulletedList.cs
- PropertyEntry.cs
- CodeObject.cs
- NumberFormatInfo.cs
- TextEditorSpelling.cs
- ColorTransformHelper.cs
- DependencyObjectProvider.cs
- OutputScopeManager.cs
- SqlBulkCopyColumnMappingCollection.cs
- ByteAnimationUsingKeyFrames.cs
- DataProtection.cs
- DynamicRenderer.cs
- SafeNativeMethods.cs
- ArcSegment.cs
- OpCellTreeNode.cs
- CodeSpit.cs
- AffineTransform3D.cs
- WebProxyScriptElement.cs
- Comparer.cs
- EntitySqlQueryCacheEntry.cs
- safelinkcollection.cs
- PrimitiveCodeDomSerializer.cs
- AuthenticationService.cs
- Atom10FormatterFactory.cs
- FlowLayout.cs
- XamlPointCollectionSerializer.cs
- CategoryList.cs
- HttpFileCollection.cs
- PrimitiveXmlSerializers.cs
- ValidationHelpers.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- LabelAutomationPeer.cs
- Triplet.cs
- BoolExpr.cs
- BamlResourceDeserializer.cs
- JsonQueryStringConverter.cs
- DataServices.cs
- MasterPageBuildProvider.cs
- TextSimpleMarkerProperties.cs
- DbConnectionStringCommon.cs
- PageWrapper.cs
- ToolStripSystemRenderer.cs
- OwnerDrawPropertyBag.cs
- ControlPropertyNameConverter.cs
- Lease.cs
- Script.cs
- SessionIDManager.cs
- ValueTable.cs
- UntypedNullExpression.cs
- DataServiceRequestOfT.cs
- AssemblyUtil.cs
- GridSplitter.cs
- SqlDuplicator.cs
- SequenceDesignerAccessibleObject.cs
- PassportIdentity.cs
- ResourceProperty.cs
- PkcsMisc.cs
- BorderSidesEditor.cs
- UmAlQuraCalendar.cs
- EditorZoneBase.cs
- XPathNodeIterator.cs
- TypeUtil.cs