From e9153e1d1aae50024d8cd05fe14a9bce34343a0e Mon Sep 17 00:00:00 2001 From: teravus Date: Thu, 15 Nov 2012 10:05:16 -0500 Subject: Revert "Merge master into teravuswork", it should have been avination, not master. This reverts commit dfac269032300872c4d0dc507f4f9062d102b0f4, reversing changes made to 619c39e5144f15aca129d6d999bcc5c34133ee64. --- OpenSim/Framework/Pool.cs | 91 ----------------------------------------------- 1 file changed, 91 deletions(-) delete mode 100644 OpenSim/Framework/Pool.cs (limited to 'OpenSim/Framework/Pool.cs') diff --git a/OpenSim/Framework/Pool.cs b/OpenSim/Framework/Pool.cs deleted file mode 100644 index 5484f5c..0000000 --- a/OpenSim/Framework/Pool.cs +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections.Generic; - -namespace OpenSim.Framework -{ - /// - /// Naive pool implementation. - /// - /// - /// Currently assumes that objects are in a useable state when returned. - /// - public class Pool - { - /// - /// Number of objects in the pool. - /// - public int Count - { - get - { - lock (m_pool) - return m_pool.Count; - } - } - - private Stack m_pool; - - /// - /// Maximum pool size. Beyond this, any returned objects are not pooled. - /// - private int m_maxPoolSize; - - private Func m_createFunction; - - public Pool(Func createFunction, int maxSize) - { - m_maxPoolSize = maxSize; - m_createFunction = createFunction; - m_pool = new Stack(m_maxPoolSize); - } - - public T GetObject() - { - lock (m_pool) - { - if (m_pool.Count > 0) - return m_pool.Pop(); - else - return m_createFunction(); - } - } - - public void ReturnObject(T obj) - { - lock (m_pool) - { - if (m_pool.Count >= m_maxPoolSize) - return; - else - m_pool.Push(obj); - } - } - } -} \ No newline at end of file -- cgit v1.1