コード例 #1
0
        // Token: 0x060006B7 RID: 1719 RVA: 0x0002B98C File Offset: 0x00029B8C
        private void pmethod_1219(object obje_0)
        {
            Class_185 class_ = (Class_185)obje_0;

            try
            {
                class_.prop_0.tmethod_1132();
                lock (this.field_13)
                {
                    if (class_.field_2 > this.field_5)
                    {
                        this.field_5 = class_.field_2;
                    }
                }
                lock (this.field_10)
                {
                    this.field_10.Enqueue(class_.field_0);
                }
                this.field_16.Set();
            }
            catch (Exception ex)
            {
                lock (this.field_14)
                {
                    if (this.field_7 != null)
                    {
                        this.field_7 = ex;
                    }
                }
            }
        }
コード例 #2
0
 // Token: 0x060006B0 RID: 1712 RVA: 0x0002B408 File Offset: 0x00029608
 private void tmethod_1212(bool bool_0)
 {
     if (this.field_9)
     {
         return;
     }
     if (this.field_6 >= 0)
     {
         Class_185 obje_ = this.field_12[this.field_6];
         this.pmethod_1219(obje_);
         this.field_6 = -1;
     }
     if (bool_0)
     {
         this.lmethod_1218(true, false);
         this.vmethod_1215();
         return;
     }
     this.lmethod_1218(false, false);
 }
コード例 #3
0
 // Token: 0x060006B6 RID: 1718 RVA: 0x0002B71C File Offset: 0x0002991C
 private void lmethod_1218(bool bool_0, bool bool_1)
 {
     if (this.field_9)
     {
         return;
     }
     this.field_9 = true;
     if (bool_0 || bool_1)
     {
         this.field_16.WaitOne();
     }
     do
     {
         int num  = -1;
         int num2 = bool_0 ? 200 : (bool_1 ? -1 : 0);
         int num3 = -1;
         do
         {
             if (Monitor.TryEnter(this.field_10, num2))
             {
                 num3 = -1;
                 try
                 {
                     if (this.field_10.Count > 0)
                     {
                         num3 = this.field_10.Dequeue();
                     }
                 }
                 finally
                 {
                     Monitor.Exit(this.field_10);
                 }
                 if (num3 >= 0)
                 {
                     Class_185 class_ = this.field_12[num3];
                     if (class_.field_2 != this.field_4 + 1)
                     {
                         lock (this.field_10)
                         {
                             this.field_10.Enqueue(num3);
                         }
                         if (num == num3)
                         {
                             this.field_16.WaitOne();
                             num = -1;
                         }
                         else if (num == -1)
                         {
                             num = num3;
                         }
                     }
                     else
                     {
                         num = -1;
                         Class_180 class_2 = class_.field_3;
                         class_2.smethod_1120();
                         MemoryStream memoryStream = class_.field_1;
                         memoryStream.Seek(0L, SeekOrigin.Begin);
                         long   num4  = 0L;
                         byte[] array = new byte[1024];
                         int    num5;
                         while ((num5 = memoryStream.Read(array, 0, array.Length)) > 0)
                         {
                             for (int i = 0; i < num5; i++)
                             {
                                 this.field_22.lmethod_1118(array[i]);
                             }
                             num4 += (long)num5;
                         }
                         if (class_2.prop_1 > 0)
                         {
                             this.field_22.kmethod_1117(class_2.prop_1, (uint)class_2.prop_0);
                         }
                         this.field_20  = (this.field_20 << 1 | this.field_20 >> 31);
                         this.field_20 ^= class_.prop_0.prop_1;
                         this.field_18 += num4;
                         class_2.dmethod_1116();
                         this.field_4   = class_.field_2;
                         class_.field_2 = -1;
                         this.field_11.Enqueue(class_.field_0);
                         if (num2 == -1)
                         {
                             num2 = 0;
                         }
                     }
                 }
             }
             else
             {
                 num3 = -1;
             }
         }while (num3 >= 0);
     }while (bool_0 && this.field_4 != this.field_5);
     this.field_9 = false;
 }
コード例 #4
0
        // Token: 0x060006B5 RID: 1717 RVA: 0x0002B558 File Offset: 0x00029758
        public virtual void kmethod_1217(byte[] byteDizi_0, int sayıInt_0, int sayıInt_1)
        {
            bool bool_ = false;

            if (this.field_21 == null)
            {
                throw new IOException("the stream is not open");
            }
            if (this.field_7 != null)
            {
                this.field_8 = true;
                Exception ex = this.field_7;
                this.field_7 = null;
                throw ex;
            }
            if (sayıInt_0 < 0)
            {
                throw new IndexOutOfRangeException(string.Format("offset ({0}) must be > 0", sayıInt_0));
            }
            if (sayıInt_1 < 0)
            {
                throw new IndexOutOfRangeException(string.Format("count ({0}) must be > 0", sayıInt_1));
            }
            if (sayıInt_0 + sayıInt_1 > byteDizi_0.Length)
            {
                throw new IndexOutOfRangeException(string.Format("offset({0}) count({1}) bLength({2})", sayıInt_0, sayıInt_1, byteDizi_0.Length));
            }
            if (sayıInt_1 == 0)
            {
                return;
            }
            if (!this.field_2)
            {
                this.lmethod_1208();
                this.field_2 = true;
            }
            int num  = 0;
            int num2 = sayıInt_1;

            for (;;)
            {
                this.lmethod_1218(false, bool_);
                bool_ = false;
                int index;
                if (this.field_6 >= 0)
                {
                    index = this.field_6;
                    goto IL_124;
                }
                if (this.field_11.Count != 0)
                {
                    index = this.field_11.Dequeue();
                    this.field_3++;
                    goto IL_124;
                }
                bool_ = true;
IL_1A0:
                if (num2 <= 0)
                {
                    goto Block_12;
                }
                continue;
IL_124:
                Class_185 class_ = this.field_12[index];
                class_.field_2   = this.field_3;
                int num3 = class_.prop_0.pmethod_1129(byteDizi_0, sayıInt_0, num2);
                if (num3 != num2)
                {
                    if (!ThreadPool.QueueUserWorkItem(new WaitCallback(this.pmethod_1219), class_))
                    {
                        break;
                    }
                    this.field_6 = -1;
                    sayıInt_0   += num3;
                }
                else
                {
                    this.field_6 = index;
                }
                num2 -= num3;
                num  += num3;
                goto IL_1A0;
            }
            throw new Exception("Cannot enqueue workitem");
Block_12:
            this.field_17 += (long)num;
        }