summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHonza Král <honza.kral@gmail.com>2010-11-21 17:35:48 +0000
committerHonza Král <honza.kral@gmail.com>2010-11-21 17:35:48 +0000
commit2aa47f2b32ada4f78b98765441489bd59445c181 (patch)
treeb4e7cab233bf04e0aa6a8b4e711d4aa171ce9d0a
parent4e3c8c6aff5d0cb2d3869cae36618da6106d65be (diff)
[1.2.X] Preventing problems possibly introduced by r14662
acquire a lock before entering a try block that ends with the lock's release. Thanks for the catch Alex. Backport of r14668 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@14669 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/dispatch/dispatcher.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/django/dispatch/dispatcher.py b/django/dispatch/dispatcher.py
index bea9131398..c0301cd7b8 100644
--- a/django/dispatch/dispatcher.py
+++ b/django/dispatch/dispatcher.py
@@ -99,8 +99,8 @@ class Signal(object):
if weak:
receiver = saferef.safeRef(receiver, onDelete=self._remove_receiver)
+ self.lock.acquire()
try:
- self.lock.acquire()
for r_key, _ in self.receivers:
if r_key == lookup_key:
break
@@ -136,8 +136,8 @@ class Signal(object):
else:
lookup_key = (_make_id(receiver), _make_id(sender))
+ self.lock.acquire()
try:
- self.lock.acquire()
for index in xrange(len(self.receivers)):
(r_key, _) = self.receivers[index]
if r_key == lookup_key:
@@ -237,8 +237,8 @@ class Signal(object):
Remove dead receivers from connections.
"""
+ self.lock.acquire()
try:
- self.lock.acquire()
to_remove = []
for key, connected_receiver in self.receivers:
if connected_receiver == receiver: