Пример #1
0
        public void NoneCleanups()
        {
            var i     = 0;
            var clean = 0;
            var pool  = PoolEx.None((int x, object p) => x == 0 ? i++ : x, x => clean++);

            using (var x = pool.Get())
            {
                Assert.Equal(0, x.Item);
                Assert.Equal(0, clean);
            }
            Assert.Equal(1, clean);

            using (var x = pool.Get())
            {
                Assert.Equal(1, x.Item);
                Assert.Equal(1, clean);
            }
            Assert.Equal(2, clean);
            using (var x = pool.Get())
            {
                Assert.Equal(2, x.Item);
                Assert.Equal(2, clean);
            }
            Assert.Equal(3, clean);
        }
Пример #2
0
        public override bool Run()
        {
            try
            {
                Pool poolNearestPoint = Pool.GetPoolNearestPoint(Hit.mPoint);
                if (poolNearestPoint != null)
                {
                    // Stops EA Standard from performing its teen checks
                    if (!poolNearestPoint.mSkinnyDipperList.Contains(Actor.SimDescription.SimDescriptionId))
                    {
                        poolNearestPoint.mSkinnyDipperList.Add(Actor.SimDescription.SimDescriptionId);
                    }
                }

                bool success = base.Run();

                if (Actor.Posture is SwimmingInPool)
                {
                    PoolEx.AddSkinnyDipper(poolNearestPoint, Actor);
                }

                return(success);
            }
            catch (ResetException)
            {
                throw;
            }
            catch (Exception e)
            {
                Common.Exception(Actor, Target, e);
                return(false);
            }
        }
Пример #3
0
        public void NotPooledOk()
        {
            var o  = new object();
            var oc = o;

            using (var p = PoolEx.NotPooled(o))
                Assert.Same(o, p.Item);
            Assert.Same(oc, o);
        }
Пример #4
0
        public void NoneCreatesAlways()
        {
            var i    = 0;
            var pool = PoolEx.None((int x, object p) => x == 0 ? i++ : x);

            using (var item = pool.Get())
                Assert.Equal(0, item.Item);
            using (var item = pool.Get())
                Assert.Equal(1, item.Item);
            using (var item = pool.Get())
                Assert.Equal(2, item.Item);
        }
Пример #5
0
    public void 사용예시_생성자Override()
    {
        SimplePoolTarget.Reset_InstanceCount();
        int    instanceCount = Random.Range(1, 10);
        PoolEx poolEx        = new PoolEx(instanceCount);

        Assert.AreEqual(poolEx.AllInstance.Count, instanceCount);

        SimplePoolTarget target = poolEx.Spawn();

        Assert.AreEqual(target.IsCreateFromFactory, true);
    }
Пример #6
0
 public NetSocketFactory(IPool <Func <IPooled <SocketAsyncEventArgs> > > pool = null)
 {
     _pool = pool ?? PoolEx.Basic(PooledEx.Factory <SocketAsyncEventArgs>());
 }
Пример #7
0
 public void ConcurrentOk()
 {
     PoolOk((i, d) => PoolEx.Concurrent(i, d));
     PoolOk((i, d) => PoolEx.Concurrent(i, d, new ConcurrentQueue <int>()));
 }
Пример #8
0
 public void LockingOk()
 {
     PoolOk((i, c) => PoolEx.ThreadUnsafe(i, c).Locking());
 }