X-Git-Url: http://www.dolda2000.com/gitweb/?p=ashd.git;a=blobdiff_plain;f=python%2Fashd%2Fwsgidir.py;h=afd13f5021199c76a5f9a0a926a6adc12523faf8;hp=5711ee66b612f4ee449ff3011ca2ed3881d70bab;hb=b8d56e8f4550642b7798b88abd102ed5158e83be;hpb=5c1a2105e0dda1de8eefc3f3fd83c76f43583c33 diff --git a/python/ashd/wsgidir.py b/python/ashd/wsgidir.py index 5711ee6..afd13f5 100644 --- a/python/ashd/wsgidir.py +++ b/python/ashd/wsgidir.py @@ -87,13 +87,13 @@ def getmod(path): if path in modcache: entry = modcache[path] else: - entry = cachedmod() + entry = [threading.Lock(), None] modcache[path] = entry finally: cachelock.release() - entry.lock.acquire() + entry[0].acquire() try: - if entry.mod is None or sb.st_mtime > entry.mtime: + if entry[1] is None or sb.st_mtime > entry[1].mtime: f = open(path, "r") try: text = f.read() @@ -103,11 +103,10 @@ def getmod(path): mod = types.ModuleType(mangle(path)) mod.__file__ = path exec code in mod.__dict__ - entry.mod = mod - entry.mtime = sb.st_mtime - return entry + entry[1] = cachedmod(mod, sb.st_mtime) + return entry[1] finally: - entry.lock.release() + entry[0].release() class handler(object): def __init__(self):