summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2012-09-15 18:35:22 -0400
committerChris McDonough <chrism@plope.com>2012-09-15 18:35:22 -0400
commit684fd22755f5ffd98b5629c63bc07a23c2edaf4a (patch)
tree90ed4bdea5347528b0c0cc08405557207ed85bbb
parent4c73b18196db0a7c3a84100a9e64a0574f3110d2 (diff)
downloadpyramid-684fd22755f5ffd98b5629c63bc07a23c2edaf4a.tar.gz
pyramid-684fd22755f5ffd98b5629c63bc07a23c2edaf4a.tar.bz2
pyramid-684fd22755f5ffd98b5629c63bc07a23c2edaf4a.zip
use with statement to acquire/release thread locks
-rw-r--r--pyramid/mako_templating.py9
-rw-r--r--pyramid/renderers.py18
-rw-r--r--pyramid/scripts/pserve.py8
3 files changed, 11 insertions, 24 deletions
diff --git a/pyramid/mako_templating.py b/pyramid/mako_templating.py
index 2b09e8d45..5d09cad01 100644
--- a/pyramid/mako_templating.py
+++ b/pyramid/mako_templating.py
@@ -95,7 +95,9 @@ class MakoRendererFactoryHelper(object):
r'(?:\#(?P<defname>[\w_]+))?'
r'(\.(?P<ext>.*))'
)
- asset, defname, ext = p.match(info.name).group('asset', 'defname', 'ext')
+ asset, defname, ext = p.match(info.name).group(
+ 'asset', 'defname', 'ext'
+ )
path = '%s.%s' % (asset, ext)
registry = info.registry
settings = info.settings
@@ -154,12 +156,9 @@ class MakoRendererFactoryHelper(object):
preprocessor=preprocessor
)
- registry_lock.acquire()
- try:
+ with registry_lock:
registry.registerUtility(lookup, IMakoLookup,
name=settings_prefix)
- finally:
- registry_lock.release()
return MakoLookupTemplateRenderer(path, defname, lookup)
diff --git a/pyramid/renderers.py b/pyramid/renderers.py
index fe9df33d1..3252c2c93 100644
--- a/pyramid/renderers.py
+++ b/pyramid/renderers.py
@@ -429,12 +429,9 @@ class ChameleonRendererLookup(object):
if renderer is None:
renderer = self.impl(spec, self, macro=None)
# cache the template
- try:
- self.lock.acquire()
+ with self.lock:
registry.registerUtility(renderer,
ITemplateRenderer, name=spec)
- finally:
- self.lock.release()
else:
# spec is a package:relpath asset spec
renderer = registry.queryUtility(ITemplateRenderer, name=spec)
@@ -445,7 +442,8 @@ class ChameleonRendererLookup(object):
r'(\.(?P<ext>.*))'
)
asset, macro, ext = p.match(spec).group(
- 'asset', 'defname', 'ext')
+ 'asset', 'defname', 'ext'
+ )
spec = '%s.%s' % (asset, ext)
try:
package_name, filename = spec.split(':', 1)
@@ -463,12 +461,9 @@ class ChameleonRendererLookup(object):
settings = info.settings
if not settings.get('reload_assets'):
# cache the template
- self.lock.acquire()
- try:
+ with self.lock:
registry.registerUtility(renderer, ITemplateRenderer,
name=spec)
- finally:
- self.lock.release()
return renderer
@@ -479,11 +474,8 @@ def template_renderer_factory(info, impl, lock=registry_lock):
lookup = registry.queryUtility(IChameleonLookup, name=info.type)
if lookup is None:
lookup = ChameleonRendererLookup(impl, registry)
- lock.acquire()
- try:
+ with lock:
registry.registerUtility(lookup, IChameleonLookup, name=info.type)
- finally:
- lock.release()
return lookup(info)
@implementer(IRendererInfo)
diff --git a/pyramid/scripts/pserve.py b/pyramid/scripts/pserve.py
index ea2a4ae09..9fbf0729a 100644
--- a/pyramid/scripts/pserve.py
+++ b/pyramid/scripts/pserve.py
@@ -583,12 +583,8 @@ class LazyWriter(object):
def open(self):
if self.fileobj is None:
- self.lock.acquire()
- try:
- if self.fileobj is None:
- self.fileobj = open(self.filename, self.mode)
- finally:
- self.lock.release()
+ with self.lock:
+ self.fileobj = open(self.filename, self.mode)
return self.fileobj
def close(self):