Example #1
0
 public static void EMERGENCY_DUMP(bool TRY_TO_EXECUTE)
 {
     Debug.LogWarning(string.Concat("RUNNING EMERGENCY DUMP: TRY TO EXECUTE=", TRY_TO_EXECUTE));
     try
     {
         try
         {
             if (!TRY_TO_EXECUTE)
             {
                 InterpTimedEvent.queue.EmergencyDump(false);
             }
             else
             {
                 try
                 {
                     foreach (InterpTimedEvent interpTimedEvent in InterpTimedEvent.queue.EmergencyDump(true))
                     {
                         try
                         {
                             try
                             {
                                 InterpTimedEvent.InvokeDirect(interpTimedEvent);
                             }
                             catch (Exception exception)
                             {
                                 Debug.LogException(exception);
                             }
                         }
                         finally
                         {
                             try
                             {
                                 interpTimedEvent.Dispose();
                             }
                             catch (Exception exception1)
                             {
                                 Debug.LogException(exception1);
                             }
                         }
                     }
                 }
                 catch (Exception exception2)
                 {
                     Debug.LogException(exception2);
                 }
             }
         }
         catch (Exception exception3)
         {
             Debug.LogException(exception3);
         }
     }
     finally
     {
         InterpTimedEvent.queue     = new InterpTimedEvent.LList();
         InterpTimedEvent.dump      = new InterpTimedEvent.Dir();
         InterpTimedEvent.dumpCount = 0;
     }
     Debug.LogWarning(string.Concat("END OF EMERGENCY DUMP: TRY TO EXECUTE=", TRY_TO_EXECUTE));
 }
Example #2
0
 private bool RemoveUnsafe(InterpTimedEvent node)
 {
     InterpTimedEvent.Dir dir;
     InterpTimedEvent.Dir dir1;
     InterpTimedEvent.Dir dir2;
     if (this.count > 0 && node != null && node.inlist)
     {
         if (node.prev.has)
         {
             if (!node.next.has)
             {
                 this.last = node.prev;
                 InterpTimedEvent interpTimedEvent = this.last.node;
                 dir = new InterpTimedEvent.Dir();
                 interpTimedEvent.next = dir;
                 InterpTimedEvent.LList lList = this;
                 lList.count = lList.count - 1;
                 InterpTimedEvent.Dir dir3 = new InterpTimedEvent.Dir();
                 dir1        = dir3;
                 node.next   = dir3;
                 node.prev   = dir1;
                 node.inlist = false;
                 return(true);
             }
             node.next.node.prev = node.prev;
             node.prev.node.next = node.next;
             InterpTimedEvent.LList lList1 = this;
             lList1.count = lList1.count - 1;
             InterpTimedEvent.Dir dir4 = new InterpTimedEvent.Dir();
             dir         = dir4;
             node.next   = dir4;
             node.prev   = dir;
             node.inlist = false;
             return(true);
         }
         if (node.next.has)
         {
             this.first = node.next;
             InterpTimedEvent interpTimedEvent1 = this.first.node;
             dir1 = new InterpTimedEvent.Dir();
             interpTimedEvent1.prev = dir1;
             InterpTimedEvent.LList lList2 = this;
             lList2.count = lList2.count - 1;
             InterpTimedEvent.Dir dir5 = new InterpTimedEvent.Dir();
             dir2        = dir5;
             node.next   = dir5;
             node.prev   = dir2;
             node.inlist = false;
             return(true);
         }
         if (this.first.node == node)
         {
             dir2 = new InterpTimedEvent.Dir();
             InterpTimedEvent.Dir dir6 = dir2;
             InterpTimedEvent.Dir dir7 = dir6;
             this.last  = dir6;
             this.first = dir7;
             this.count = 0;
             dir7       = new InterpTimedEvent.Dir();
             InterpTimedEvent.Dir dir8 = dir7;
             InterpTimedEvent.Dir dir9 = dir8;
             node.next   = dir8;
             node.prev   = dir9;
             node.inlist = false;
             return(true);
         }
     }
     return(false);
 }
Example #3
0
        private bool Insert(ref InterpTimedEvent.Dir ent)
        {
            InterpTimedEvent.Dir dir;
            if (ent.node == null)
            {
                return(false);
            }
            if (ent.node.inlist)
            {
                return(false);
            }
            if (this.count == 0)
            {
                InterpTimedEvent.Dir dir1 = ent;
                InterpTimedEvent.Dir dir2 = dir1;
                this.last  = dir1;
                this.first = dir2;
            }
            else if (this.last.node.info.timestampInMillis <= ent.node.info.timestampInMillis)
            {
                if (this.count != 1)
                {
                    ent.node.prev       = this.last;
                    this.last.node.next = ent;
                    this.last           = ent;
                }
                else
                {
                    this.first           = this.last;
                    this.last            = ent;
                    ent.node.prev        = this.first;
                    this.first.node.next = this.last;
                }
            }
            else if (this.count == 1)
            {
                this.first           = ent;
                this.first.node.next = this.last;
                this.last.node.prev  = this.first;
            }
            else if (this.first.node.info.timestampInMillis <= ent.node.info.timestampInMillis)
            {
                if (this.first.node.info.timestampInMillis != ent.node.info.timestampInMillis)
                {
                    dir = this.last;
                    do
                    {
                        if (!dir.node.prev.has)
                        {
                            goto Label0;
                        }
                        dir = dir.node.prev;
                    }while (dir.node.info.timestampInMillis > ent.node.info.timestampInMillis);
                }
                else
                {
                    dir = this.first;
                    while (dir.node.next.has)
                    {
                        if (dir.node.next.node.info.timestampInMillis <= ent.node.info.timestampInMillis)
                        {
                            dir = dir.node.next;
                        }
                        else
                        {
                            break;
                        }
                    }
                }
Label0:
                ent.node.next = dir.node.next;
                ent.node.prev = dir;
            }
            else
            {
                ent.node.next        = this.first;
                this.first.node.prev = ent;
                this.first           = ent;
            }
            InterpTimedEvent.LList lList = this;
            lList.count     = lList.count + 1;
            ent.node.inlist = true;
            if (this.FAIL_SAFE_SET == null)
            {
                this.FAIL_SAFE_SET = new HashSet <InterpTimedEvent>();
            }
            this.FAIL_SAFE_SET.Add(ent.node);
            return(true);
        }