Example #1
0
        private void ScheduleDerivedMethods(MosaType type, int slot)
        {
            var children = TypeLayout.GetDerivedTypes(type);

            if (children == null)
            {
                return;
            }

            foreach (var derived in children)
            {
                bool contains;

                lock (allocatedTypes)
                {
                    contains = allocatedTypes.Contains(derived);
                }

                if (contains)
                {
                    var derivedMethod = TypeLayout.GetMethodBySlot(derived, slot);

                    MarkMethodInvoked(derivedMethod);

                    ScheduleMethod(derivedMethod);
                }

                ScheduleDerivedMethods(derived, slot);
            }
        }