From b335b746523ffd59db1402b097a802b3fd99eaac Mon Sep 17 00:00:00 2001 From: rcoh Date: Wed, 8 Dec 2010 16:39:50 -0500 Subject: Code for the demo. Everything works afaik. Contains a couple more optimizations. Contains modify param behavior. Improved support for recursive hooks. Modifications to SmootCoreObject to get us closer to a fully multi-threaded system. This should be the last commit directly to master. All further commits should be on subranches and get merged. --- operationscore/SmootCoreObject.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'operationscore/SmootCoreObject.py') diff --git a/operationscore/SmootCoreObject.py b/operationscore/SmootCoreObject.py index d29e710..8514b3e 100644 --- a/operationscore/SmootCoreObject.py +++ b/operationscore/SmootCoreObject.py @@ -1,16 +1,24 @@ import Util import pdb -class SmootCoreObject: - def __init__(self, argDict): +import threading +import thread +class SmootCoreObject(threading.Thread): + def __init__(self, argDict, skipValidation = False): self.argDict = argDict self.validateArgs(self.className()+'.params') + self.lock = thread.allocate_lock() self.init() #call init of inheriting class # self.__setitem__ = self.argDict.__setitem__ # self.__getitem__ = self.argDict.__getitem__ def init(self): pass + def acquireLock(self): + self.lock = thread.allocate_lock() #TODO: fix. + self.lock.acquire() + def releaseLock(self): + self.lock.release() def className(self): - return str(self.__class__).split('.')[-1] + return str(self.__class__).split('.')[-1] #TODO: this doesn't work. def __setitem__(self,k, item): self.argDict[k] = item def __getitem__(self, item): -- cgit v1.2.3