У меня есть коллекция объектов multiprocessing.Process в списке, и все они используют один и тот же экземпляр того, что я буду называть «безопасная для процесса очередь», для связи в безопасном для процесса (поточно-безопасном, но с процессами)) путь к родительскому процессу, в обязанности которого входит управление потоками.
Когда дочерний процесс отправляет что-либо в очередь, он вызывает ProcessSafeQueue (). Enqueue (), который сначала получает multiprocessing.Manager> RLock, затем записывает в очередь и, наконец, снимает блокировку.
В данном случае это был pid дочернего процесса.Вот ответная реакция на ошибку.
Traceback (most recent call last):
File /usr/lib/python2.5/site-packages/my_project/some_module.py, line 87, in send_data
q.enqueue(os.getpid())
File /usr/lib/python2.5/site-packages/my_project/some_module.py, line 33, in enqueue
self.lock.acquire()
File /usr/lib/python2.5/site-packages/processing/managers.py, line 979, in acquire
return self._callMethod(\'acquire\', (blocking,))
File /usr/lib/python2.5/site-packages/processing/managers.py, line 740, in _callMethod
self._connect()
File /usr/lib/python2.5/site-packages/processing/managers.py, line 727, in _connect
connection = Client(self._token.address, authkey=self._authkey)
File /usr/lib/python2.5/site-packages/processing/connection.py, line 187, in Client
answerChallenge(c, authkey)
File /usr/lib/python2.5/site-packages/processing/connection.py, line 425, in answerChallenge
message = connection.recvBytes()
А вот фактическая ошибка:
IOError: [Errno 11] Ресурс временно недоступен
IМне интересно, может ли кто-нибудь помочь мне понять, почему я могу получить эту ошибку после успешного выполнения приложения в течение ~ 7 часов или около того.