Code:
/ DotNET / DotNET / 8.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
- AnnotationService.cs
- InvalidAsynchronousStateException.cs
- ToolStripSettings.cs
- Transaction.cs
- QueryTask.cs
- KnownTypesProvider.cs
- CurrencyManager.cs
- ListBindableAttribute.cs
- XmlHierarchicalDataSourceView.cs
- DataPagerFieldItem.cs
- TabItemWrapperAutomationPeer.cs
- DataTablePropertyDescriptor.cs
- mediapermission.cs
- ContentElement.cs
- DecoderReplacementFallback.cs
- XsltLoader.cs
- WindowsContainer.cs
- ObjectHelper.cs
- RecordBuilder.cs
- GeneratedView.cs
- RequestCachingSection.cs
- OleDbErrorCollection.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- SpecialFolderEnumConverter.cs
- Ray3DHitTestResult.cs
- StatusBarDesigner.cs
- WindowsListViewGroup.cs
- ProfileGroupSettings.cs
- ResourceExpressionBuilder.cs
- TdsRecordBufferSetter.cs
- ClientRolePrincipal.cs
- EntityAdapter.cs
- ProfileServiceManager.cs
- StylusTip.cs
- TrackingProfile.cs
- SessionStateSection.cs
- GeometryGroup.cs
- IPAddress.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- IndexedDataBuffer.cs
- TrustManagerPromptUI.cs
- ProfileService.cs
- FormsAuthenticationUser.cs
- CodeParameterDeclarationExpressionCollection.cs
- ReadOnlyNameValueCollection.cs
- XmlIlVisitor.cs
- Schema.cs
- RegexCaptureCollection.cs
- ApplicationDirectoryMembershipCondition.cs
- StickyNoteHelper.cs
- IBuiltInEvidence.cs
- InputScope.cs
- SingleKeyFrameCollection.cs
- HttpClientProtocol.cs
- FilterQuery.cs
- OrderByQueryOptionExpression.cs
- OrderingQueryOperator.cs
- ArrayElementGridEntry.cs
- RadioButtonList.cs
- ImageSourceValueSerializer.cs
- CriticalFinalizerObject.cs
- LocalizationParserHooks.cs
- ListItemCollection.cs
- controlskin.cs
- EntityKey.cs
- entityreference_tresulttype.cs
- DummyDataSource.cs
- SecurityPermission.cs
- ToolStripItemImageRenderEventArgs.cs
- PasswordDeriveBytes.cs
- SafeFileHandle.cs
- SiteMapDataSource.cs
- IList.cs
- XmlSchemaAny.cs
- SafeEventLogWriteHandle.cs
- DataGridViewRowsRemovedEventArgs.cs
- Wizard.cs
- SqlTypesSchemaImporter.cs
- WebUtil.cs
- BitStream.cs
- MailAddress.cs
- EncryptedPackageFilter.cs
- KernelTypeValidation.cs
- JapaneseCalendar.cs
- BindingCollectionElement.cs
- httpstaticobjectscollection.cs
- ToggleButtonAutomationPeer.cs
- QueryException.cs
- PartialCachingAttribute.cs
- LocationUpdates.cs
- SecurityDescriptor.cs
- ConditionValidator.cs
- SizeF.cs
- DateTimeFormatInfoScanner.cs
- HostAdapter.cs
- MouseCaptureWithinProperty.cs
- EventSinkHelperWriter.cs
- CompilerParameters.cs
- GridItemProviderWrapper.cs
- CodeDelegateCreateExpression.cs