code: func (s *Server) Stop() error {
  	s.mu.Lock()
  
  	if !s.isRunning() {
  		s.mu.Unlock()
  		return errors.New("CA signer is already stopped")
  	}
  	s.cancel()
  	s.started = make(chan struct{})
  	s.joinTokens = nil
  	s.mu.Unlock()
  
  	// Wait for Run to complete
  	s.wg.Wait()
  
  	return nil
  }
docs: // Stop stops the CA and closes all grpc streams.