diff options
| author | Honza Král <honza.kral@gmail.com> | 2010-11-21 17:35:48 +0000 |
|---|---|---|
| committer | Honza Král <honza.kral@gmail.com> | 2010-11-21 17:35:48 +0000 |
| commit | 2aa47f2b32ada4f78b98765441489bd59445c181 (patch) | |
| tree | b4e7cab233bf04e0aa6a8b4e711d4aa171ce9d0a | |
| parent | 4e3c8c6aff5d0cb2d3869cae36618da6106d65be (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.py | 6 |
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: |
