title: With python.multiprocessing, how do I create a proxy in the current process to pass to other processes?
body: <p>I'm using the <code>multiprocessing</code> library in Python.  I can see how to define that objects <em>returned</em> from functions should have proxies created, but I'd like to have objects in the current process turned into proxies so I can pass them as parameters.</p>
  
  <p>For example, running the following script:</p>
  
  <pre><code>from multiprocessing import current_process
  from multiprocessing.managers import BaseManager
  
  class ProxyTest(object):
      def call_a(self):
          print 'A called in %s' % current_process()
  
      def call_b(self, proxy_test):
          print 'B called in %s' % current_process()
          proxy_test.call_a()
  
  class MyManager(BaseManager):
      pass
  
  MyManager.register('proxy_test', ProxyTest)
  
  if __name__ == '__main__':
      manager = MyManager()
      manager.start()
  
      pt1 = ProxyTest()
      pt2 = manager.proxy_test()
  
      pt1.call_a()
      pt2.call_a()
  
      pt1.call_b(pt2)
      pt2.call_b(pt1)
  </code></pre>
  
  <p>... I get the following output ...</p>
  
  <pre><code>A called in &lt;_MainProcess(MainProcess, started)&gt;
  A called in &lt;Process(MyManager-1, started)&gt;
  B called in &lt;_MainProcess(MainProcess, started)&gt;
  A called in &lt;Process(MyManager-1, started)&gt;
  B called in &lt;Process(MyManager-1, started)&gt;
  A called in &lt;Process(MyManager-1, started)&gt;
  </code></pre>
  
  <p>... but I want that final line of output coming from <code>_MainProcess</code>.  </p>
  
  <p>I could just create another Process and run it from there, but I'm trying to keep the amount of data that needs to be passed between processes to a minimum.  The documentation for the <code>Manager</code> object mentioned a <code>serve_forever</code> method, but it doesn't seem to be supported.  Any ideas?
  Does anyone know?</p>