Commit aee9db9b authored by Honza Král's avatar Honza Král
Browse files

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.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14668 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 65b380e7
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -99,8 +99,8 @@ class Signal(object):
        if weak:
            receiver = saferef.safeRef(receiver, onDelete=self._remove_receiver)

        try:
        self.lock.acquire()
        try:
            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))
        
        try:
        self.lock.acquire()
        try:
            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.
        """

        try:
        self.lock.acquire()
        try:
            to_remove = []
            for key, connected_receiver in self.receivers:
                if connected_receiver == receiver: