docs: def _producer_wrapper(f, port, addr='tcp://127.0.0.1'):
      """A shim that sets up a socket and starts the producer callable.
  
      Parameters
      ----------
      f : callable
          Callable that takes a single argument, a handle
          for a ZeroMQ PUSH socket. Must be picklable.
      port : int
          The port on which the socket should connect.
      addr : str, optional
          Address to which the socket should connect. Defaults
          to localhost ('tcp://127.0.0.1').
  
      """
      try:
          context = zmq.Context()
          socket = context.socket(zmq.PUSH)
          socket.connect(':'.join([addr, str(port)]))
          f(socket)
      finally:
          # Works around a Python 3.x bug.
          context.destroy()