From 83242972c09032eb89dd547f3ff3c4dcc2693555 Mon Sep 17 00:00:00 2001 From: rcoh Date: Mon, 14 Feb 2011 01:51:43 -0500 Subject: Fixed some threading bugs. Modified LightInstallation.py so that Behaviors are *Only* run if they are marked to be rendered. Fixed a threading issue tied to the component registry. --- util/ComponentRegistry.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'util') diff --git a/util/ComponentRegistry.py b/util/ComponentRegistry.py index be913df..3036138 100644 --- a/util/ComponentRegistry.py +++ b/util/ComponentRegistry.py @@ -1,12 +1,18 @@ import pdb import hashlib from logger import main_log +import thread #TODO: make component registry a singleton def initRegistry(): #TODO: don't overwrite existing registry if not 'Registry' in globals(): globals()['Registry'] = {} - + makelock() + + +def makelock(): + global utilLock + utilLock = thread.allocate_lock() def clearRegistry(): initRegistry() @@ -14,6 +20,9 @@ def removeComponent(cid): global Registry Registry.pop(cid) +def getLock(): + global utilLock + return utilLock def getComponent(cid): global Registry return Registry[cid] @@ -31,6 +40,8 @@ def registerComponent(component, cid=None): cid = getNewId() component['Id'] = cid main_log.debug(cid + 'automatically assigned') + if cid in Registry: + import pdb; pdb.set_trace() Registry[cid] = component return cid @@ -42,10 +53,6 @@ def removeComponent(cid): global Registry Registry.pop(cid) -def getComponent(cid): - global Registry - return Registry[cid] - def getNewId(): global Registry trialKey = len(Registry) -- cgit v1.2.3