Forráskód Böngészése

Pass something resembling getpid instead of getcurrent. (Fixes memory leak when serializing taks information)

Ignas Mikalajūnas 13 éve
szülő
commit
55971480f1
1 módosított fájl, 2 hozzáadás és 1 törlés
  1. 2 1
      celery/concurrency/eventlet.py

+ 2 - 1
celery/concurrency/eventlet.py

@@ -110,6 +110,7 @@ class TaskPool(base.BasePool):
         from eventlet.greenpool import GreenPool
         self.Pool = GreenPool
         self.getcurrent = greenthread.getcurrent
+        self.getpid = lambda: id(greenthread.getcurrent())
         self.spawn_n = greenthread.spawn_n
 
         super(TaskPool, self).__init__(*args, **kwargs)
@@ -130,4 +131,4 @@ class TaskPool(base.BasePool):
                 target=target, args=args, kwargs=kwargs)
         self._pool.spawn_n(apply_target, target, args, kwargs,
                            callback, accept_callback,
-                           self.getcurrent)
+                           self.getpid)