Browse Source

Fixes worker hanging when hard time limit exceeded

Ask Solem 13 years ago
parent
commit
0b943b80d3
1 changed files with 3 additions and 2 deletions
  1. 3 2
      celery/concurrency/processes/pool.py

+ 3 - 2
celery/concurrency/processes/pool.py

@@ -591,10 +591,11 @@ class Pool(object):
             for job in self._cache.values():
                 for worker_pid in job.worker_pids():
                     if worker_pid in cleaned and not job.ready():
-                        if self._putlock is not None:
-                            self._putlock.release()
                         job._worker_lost = time.time()
                         continue
+            if self._putlock is not None:
+                for worker in cleaned:
+                    self._putlock.release()
             return True
         return False