소스 검색

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)