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); }
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); } }
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); }
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); }
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); }
public NetSocketFactory(IPool <Func <IPooled <SocketAsyncEventArgs> > > pool = null) { _pool = pool ?? PoolEx.Basic(PooledEx.Factory <SocketAsyncEventArgs>()); }
public void ConcurrentOk() { PoolOk((i, d) => PoolEx.Concurrent(i, d)); PoolOk((i, d) => PoolEx.Concurrent(i, d, new ConcurrentQueue <int>())); }
public void LockingOk() { PoolOk((i, c) => PoolEx.ThreadUnsafe(i, c).Locking()); }