Ejemplo n.º 1
0
 public BasicScheduler()
 {
     _heap   = new MinHeap <ScheduleEvent>();
     _lookup = new Dictionary <int, ScheduleEvent>();
     _repeat = new List <ScheduleEvent>();
     _pool   = new BasicPool <ScheduleEvent>(() => new ScheduleEvent(), delegate(ScheduleEvent item)
     {
         item.Callback = null;
         item.State    = null;
     });
     _eventSequence = 1;
     _timeNow       = 0L;
 }
        public void BasicPool_AcquireAndRelease()
        {
            var pool = new BasicPool <object>(() => new object());

            Assert.That(pool.PoolSize, Is.EqualTo(0));
            Assert.That(pool.ActiveInstanceCount, Is.EqualTo(0));

            var obj1 = pool.Acquire();

            Assert.That(pool.PoolSize, Is.EqualTo(0));
            Assert.That(pool.ActiveInstanceCount, Is.EqualTo(1));

            pool.Release(obj1);
            Assert.That(pool.PoolSize, Is.EqualTo(1));
            Assert.That(pool.ActiveInstanceCount, Is.EqualTo(0));

            var obj2 = pool.Acquire();

            Assert.That(pool.PoolSize, Is.EqualTo(0));
            Assert.That(pool.ActiveInstanceCount, Is.EqualTo(1));
            Assert.That(obj2, Is.EqualTo(obj1));
        }
Ejemplo n.º 3
0
 private void Awake()
 {
     Instance = this;
     GrowPool();
 }