code: func (m *GRPCBroker) Run() {
  	for {
  		stream, err := m.streamer.Recv()
  		if err != nil {
  			// Once we receive an error, just exit
  			break
  		}
  
  		// Initialize the waiter
  		p := m.getStream(stream.ServiceId)
  		select {
  		case p.ch <- stream:
  		default:
  		}
  
  		go m.timeoutWait(stream.ServiceId, p)
  	}
  }
docs: // Run starts the brokering and should be executed in a goroutine, since it
  // blocks forever, or until the session closes.
  //
  // Uses of GRPCBroker never need to call this. It is called internally by
  // the plugin host/client.