Esempio n. 1
0
        public virtual void dealloc(IOrganismo o)
        {
            //Log.Info("Dealloc: " + o.oid);
            if (o == null)
            {
                return;
            }
            organismos.Remove(o);
            referView.RemoveOrganismo(o);
            organismosMap.Remove(o.id);

            if (o.child != null)
            {
                dealloc(o.child);
            }
            o.clearChild();
            killCount++;
            o.kill();
            if (!recycleBin.Contains(o))
            {
                recycleBin.Add(o);
            }
            else
            {
                Log.error("Program is already present on the recycle bin: "
                          + o.oid);
            }
            cpu().deallocate(o);
            allocated.Remove(o);
        }