title: python3 multiprocessing Manager constructor function dosnt return
body: <p>im tring to use the multiprocessing Manager but if i write this</p>
  <pre><code>import multiprocessing as mp
  m = mp.Manager()
  </code></pre>
  <p>the code seams to block on line 2
  but if I do the same thing in the schell so</p>
  <pre><code>&gt;&gt;&gt; import multiprocessing as mp
  &gt;&gt;&gt; m = mp.Manager()
  </code></pre>
  <p>then m is a manager</p>
  <p>mp.Manager() cals line 48 of context.py in multiprocessing lib
  witch defines this function</p>
  <pre><code>def Manager(self):
          '''Returns a manager associated with a running server process
  
          The managers methods such as `Lock()`, `Condition()` and `Queue()`
          can be used to create shared objects.
          '''
          from .managers import SyncManager
          m = SyncManager(ctx=self.get_context())
          m.start()
          return m
  </code></pre>
  <p>the execution apears to get stucke on m.start (ln 56)</p>
  <p>there the blocking seams to hapen on ln 517 of manager.py in multiprocessing lib aka self._address = reader.recv() in this function</p>
  <pre><code>def start(self, initializer=None, initargs=()):
          '''
          Spawn a server process for this manager object
          '''
          assert self._state.value == State.INITIAL
  
          if initializer is not None and not callable(initializer):
              raise TypeError('initializer must be a callable')
  
          # pipe over which we will retrieve address of server
          reader, writer = connection.Pipe(duplex=False)
  
          # spawn process which runs a server
          self._process = self._ctx.Process(
              target=type(self)._run_server,
              args=(self._registry, self._address, self._authkey,
                    self._serializer, writer, initializer, initargs),
              )
          ident = ':'.join(str(i) for i in self._process._identity)
          self._process.name = type(self).__name__  + '-' + ident
          self._process.start()
  
          # get address of server
          writer.close()
          self._address = reader.recv()
          reader.close()
  
          # register a finalizer
          self._state.value = State.STARTED
          self.shutdown = util.Finalize(
              self, type(self)._finalize_manager,
              args=(self._process, self._address, self._authkey,
                    self._state, self._Client),
              exitpriority=0
              )
  </code></pre>
  <p>I belive that the process self._process = self._ctx.Process(...) [ln 506] never gets around to sending the required data to the writer but i dont know how to work around it</p>