internal void SetFlag(MetadataItem.MetadataFlags flag, bool value)
        {
            SpinWait spinWait = new SpinWait();

            while (true)
            {
                int flags = this._flags;
                int num   = value ? (int)((MetadataItem.MetadataFlags)flags | flag) : (int)((MetadataItem.MetadataFlags)flags & ~flag);
                if ((flags & 8) != 8)
                {
                    if (flags != Interlocked.CompareExchange(ref this._flags, num, flags))
                    {
                        spinWait.SpinOnce();
                    }
                    else
                    {
                        goto label_3;
                    }
                }
                else
                {
                    break;
                }
            }
            if ((flag & MetadataItem.MetadataFlags.Readonly) == MetadataItem.MetadataFlags.Readonly)
            {
                return;
            }
            throw new InvalidOperationException(Strings.OperationOnReadOnlyItem);
            label_3 :;
        }
 internal MetadataItem(MetadataItem.MetadataFlags flags)
 {
     this._flags = (int)flags;
 }
 internal GlobalItem(MetadataItem.MetadataFlags flags)
     : base(flags)
 {
 }
 internal bool GetFlag(MetadataItem.MetadataFlags flag)
 {
     return(flag == ((MetadataItem.MetadataFlags) this._flags & flag));
 }
Example #5
0
 internal MappingBase(MetadataItem.MetadataFlags flags)
     : base(flags)
 {
 }