Esempio n. 1
0
        public void UpdateSubclasses()
        {
            int i = 0;

            lock (subclasses) {
                while (i < subclasses.Count)
                {
                    if (subclasses[i].IsAlive)
                    {
                        object target = subclasses[i].Target;
                        if (target != null)
                        {
                            PythonType pt = target as PythonType;

                            System.Diagnostics.Debug.Assert(pt != null);

                            pt.UpdateFromBases();
                            pt.UpdateSubclasses();
                            i++;
                        }
                        else
                        {
                            subclasses.RemoveAt(i);
                        }
                    }
                    else
                    {
                        subclasses.RemoveAt(i);
                    }
                }
            }
        }