t1.py: >>> import multiprocessing, logging >>> logger = multiprocessing.log_to_stderr() >>> logger.setLevel(multiprocessing.SUBDEBUG) >>> from multiprocessing.managers import BaseManager >>> import Queue >>> queue = Queue.Queue() >>> class QueueManager(BaseManager): pass >>> QueueManager.register('get_queue', callable=lambda:queue) >>> m = QueueManager(address=('', 50000), authkey='abracadabra') >>> s = m.get_server() >>> s.serve_forever() t2.py >>> import multiprocessing, logging >>> logger = multiprocessing.log_to_stderr() >>> logger.setLevel(multiprocessing.SUBDEBUG) >>> from multiprocessing.managers import BaseManager >>> class QueueManager(BaseManager): pass >>> QueueManager.register('get_queue') >>> m = QueueManager(address=('', 50000), authkey='abracadabra') >>> m.connect() >>> queue = m.get_queue() >>> queue.put('hello') t3.py >>> import multiprocessing, logging >>> logger = multiprocessing.log_to_stderr() >>> logger.setLevel(multiprocessing.SUBDEBUG) >>> from multiprocessing.managers import BaseManager >>> class QueueManager(BaseManager): pass >>> QueueManager.register('get_queue') >>> m = QueueManager(address=('', 50000), authkey='abracadabra') >>> m.connect() >>> queue = m.get_queue() >>> queue.get() 'hello' t1.py log: rdmurray@maestro:~/python/trunk>./python ~/bin/rundoctest t1.py [DEBUG/MainProcess] 'get_queue' callable returned object with id 'b797596c' [DEBUG/MainProcess] starting server thread to service 'MainProcess' Traceback (most recent call last): File "/home/rdmurray/python/trunk/Lib/logging/__init__.py", line 763, in emit msg = self.format(record) File "/home/rdmurray/python/trunk/Lib/logging/__init__.py", line 647, in format return fmt.format(record) File "/home/rdmurray/python/trunk/Lib/logging/__init__.py", line 435, in format record.message = record.getMessage() File "/home/rdmurray/python/trunk/Lib/logging/__init__.py", line 305, in getMessage msg = msg % self.args TypeError: %d format: a number is required, not str [DEBUG/MainProcess] got EOF -- exiting thread serving 'MainProcess' [DEBUG/MainProcess] 'get_queue' callable returned object with id 'b797596c' [DEBUG/MainProcess] starting server thread to service 'MainProcess' Traceback (most recent call last): File "/home/rdmurray/python/trunk/Lib/logging/__init__.py", line 763, in emit msg = self.format(record) File "/home/rdmurray/python/trunk/Lib/logging/__init__.py", line 647, in format return fmt.format(record) File "/home/rdmurray/python/trunk/Lib/logging/__init__.py", line 435, in format record.message = record.getMessage() File "/home/rdmurray/python/trunk/Lib/logging/__init__.py", line 305, in getMessage msg = msg % self.args TypeError: %d format: a number is required, not str [DEBUG/MainProcess] got EOF -- exiting thread serving 'MainProcess' [DEBUG/MainProcess] 'get_queue' callable returned object with id 'b797596c' [DEBUG/MainProcess] starting server thread to service 'MainProcess' Traceback (most recent call last): File "/home/rdmurray/python/trunk/Lib/logging/__init__.py", line 763, in emit msg = self.format(record) File "/home/rdmurray/python/trunk/Lib/logging/__init__.py", line 647, in format return fmt.format(record) File "/home/rdmurray/python/trunk/Lib/logging/__init__.py", line 435, in format record.message = record.getMessage() File "/home/rdmurray/python/trunk/Lib/logging/__init__.py", line 305, in getMessage msg = msg % self.args TypeError: %d format: a number is required, not str [DEBUG/MainProcess] got EOF -- exiting thread serving 'MainProcess' t2.py log: rdmurray@maestro:~/python/trunk>./python ~/bin/rundoctest t2.py [DEBUG/MainProcess] requesting creation of a shared 'get_queue' object [DEBUG/MainProcess] INCREF 'b797596c' [DEBUG/MainProcess] thread 'MainThread' does not own a connection [DEBUG/MainProcess] making connection to manager [SUBDEBUG/MainProcess] finalizer calling with args (Token(typeid='get_queue', address=('', 50000), id='b797596c'), 'abracadabra', , , ProcessLocalSet(['b797596c']), ) and kwargs {} [DEBUG/MainProcess] DECREF 'b797596c' [DEBUG/MainProcess] thread 'MainThread' has no more proxies so closing conn [INFO/MainProcess] process shutting down [DEBUG/MainProcess] running all "atexit" finalizers with priority >= 0 [DEBUG/MainProcess] running the remaining "atexit" finalizers t3.py log: rdmurray@maestro:~/python/trunk>./python ~/bin/rundoctest t3.py [DEBUG/MainProcess] requesting creation of a shared 'get_queue' object [DEBUG/MainProcess] INCREF 'b797596c' [DEBUG/MainProcess] thread 'MainThread' does not own a connection [DEBUG/MainProcess] making connection to manager [SUBDEBUG/MainProcess] finalizer calling with args (Token(typeid='get_queue', address=('', 50000), id='b797596c'), 'abracadabra', , , ProcessLocalSet(['b797596c']), ) and kwargs {} [DEBUG/MainProcess] DECREF 'b797596c' [DEBUG/MainProcess] thread 'MainThread' has no more proxies so closing conn [INFO/MainProcess] process shutting down [DEBUG/MainProcess] running all "atexit" finalizers with priority >= 0 [DEBUG/MainProcess] running the remaining "atexit" finalizers