многопроцессорная обработка Python BaseManager зарегистрировал потерянное соединение сразу после нажатия Ctrl-C

У меня возникают некоторые проблемы, которые, как я подозреваю, ограничивают мою программу на Python для правильной обработки, моя программа не может вызывать методы зарегистрированного класса BaseManager сразу после нажатия Ctrl-C, даже другой процесс реализован как классы, которые наследуют от многопроцессорной обработки. Процесс затрагивается. У меня есть некоторые методы, которые я хотел бы вызвать из процесса, которые не выполняются правильно после Ctrl-C.

Например, следующий код не может вызвать экземпляр mt TestClass после Ctrl-C.

from multiprocessing.managers import BaseManager, NamespaceProxy
import time

class TestClass(object):
    def __init__(self, a):
        self.a = a

    def b(self):
        print self.a

class MyManager(BaseManager): pass

class TestProxy(NamespaceProxy):
    # We need to expose the same __dunder__ methods as NamespaceProxy,
    # in addition to the b method.
    _exposed_ = ('__getattribute__', '__setattr__', '__delattr__', 'b')

    def b(self):
        callmethod = object.__getattribute__(self, '_callmethod')
        return callmethod('b')

MyManager.register('TestClass', TestClass, TestProxy)

if __name__ == '__main__':
    manager = MyManager()
    manager.start()
    t = TestClass(1)
    print t.a
    mt = manager.TestClass(2)
    print mt.a
    mt.a = 5
    mt.b()

    try:
        while 1:
            pass
    except (KeyboardInterrupt, SystemExit):
        time.sleep(0.1)
        mt.a = 7
        mt.b()
        print "bye"
        pass

Here is the console output

1
2
5
^CTraceback (most recent call last):
  File "testManager.py", line 38, in <module>
    mt.a = 7
  File "/usr/lib/python2.7/multiprocessing/managers.py", line 1028, in __setattr__
    return callmethod('__setattr__', (key, value))
  File "/usr/lib/python2.7/multiprocessing/managers.py", line 758, in _callmethod
    conn.send((self._id, methodname, args, kwds))
IOError: [Errno 32] Broken pipe

Есть ли у вас предложения? Есть ли обходной путь или что-то не так в моем коде?

Заранее спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос