فهرست منبع

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

Ignas Mikalajūnas 13 سال پیش
والد
کامیت
55971480f1
1فایلهای تغییر یافته به همراه2 افزوده شده و 1 حذف شده
  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)