Author: Honza_Kral
Date: 2010-11-21 11:35:48 -0600 (Sun, 21 Nov 2010)
New Revision: 14669

Modified:
   django/branches/releases/1.2.X/django/dispatch/dispatcher.py
Log:
[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.

Modified: django/branches/releases/1.2.X/django/dispatch/dispatcher.py
===================================================================
--- django/branches/releases/1.2.X/django/dispatch/dispatcher.py        
2010-11-21 17:34:21 UTC (rev 14668)
+++ django/branches/releases/1.2.X/django/dispatch/dispatcher.py        
2010-11-21 17:35:48 UTC (rev 14669)
@@ -99,8 +99,8 @@
         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 @@
         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 @@
         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:

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-upda...@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to