class based singleton for SharedPool
This commit is contained in:
@@ -205,12 +205,13 @@ class ProcessPool(object):
|
|||||||
self._pool.release()
|
self._pool.release()
|
||||||
return rv
|
return rv
|
||||||
|
|
||||||
_instance = None
|
class SharedPool(object):
|
||||||
def SharedPool():
|
_instance = None
|
||||||
global _instance
|
def __init__(self):
|
||||||
if _instance is None:
|
if SharedPool._instance is None:
|
||||||
_instance = ProcessPool()
|
self.__class__._instance = ProcessPool()
|
||||||
return _instance
|
def __getattr__(self, key):
|
||||||
|
return getattr(self._instance, key)
|
||||||
|
|
||||||
def simple_execute(cmd, **kwargs):
|
def simple_execute(cmd, **kwargs):
|
||||||
return SharedPool().simple_execute(cmd, **kwargs)
|
return SharedPool().simple_execute(cmd, **kwargs)
|
||||||
|
@@ -118,7 +118,7 @@ class ProcessTestCase(test.TrialTestCase):
|
|||||||
def test_shared_pool_is_singleton(self):
|
def test_shared_pool_is_singleton(self):
|
||||||
pool1 = process.SharedPool()
|
pool1 = process.SharedPool()
|
||||||
pool2 = process.SharedPool()
|
pool2 = process.SharedPool()
|
||||||
self.assert_(id(pool1) == id(pool2))
|
self.assertEqual(id(pool1._instance), id(pool2._instance))
|
||||||
|
|
||||||
def test_shared_pool_works_as_singleton(self):
|
def test_shared_pool_works_as_singleton(self):
|
||||||
d1 = process.simple_execute('sleep 1')
|
d1 = process.simple_execute('sleep 1')
|
||||||
|
Reference in New Issue
Block a user