Kaynağa Gözat

Fix buffering quirk in py3: if the read would return EAGAIN then readinto would return none (instead of raising).

Ionel Cristian Mărieș 11 yıl önce
ebeveyn
işleme
c3c98a5bb2
1 değiştirilmiş dosya ile 2 ekleme ve 1 silme
  1. 2 1
      celery/concurrency/workhorse.py

+ 2 - 1
celery/concurrency/workhorse.py

@@ -163,7 +163,8 @@ class TaskPool(BasePool):
         si = signalfd_siginfo()
         si = signalfd_siginfo()
         while True:
         while True:
             try:
             try:
-                self.sigfh.readinto(si)
+                if not self.sigfh.readinto(si):
+                    break
             except IOError as exc:
             except IOError as exc:
                 if exc.errno != errno.EAGAIN:
                 if exc.errno != errno.EAGAIN:
                     raise
                     raise