docs: def _return_pub_syndic(self, values, master_id=None):
          '''
          Wrapper to call the '_return_pub_multi' a syndic, best effort to get the one you asked for
          '''
          func = '_return_pub_multi'
          for master, syndic_future in self.iter_master_options(master_id):
              if not syndic_future.done() or syndic_future.exception():
                  log.error(
                      'Unable to call %s on %s, that syndic is not connected',
                      func, master
                  )
                  continue
  
              future, data = self.pub_futures.get(master, (None, None))
              if future is not None:
                  if not future.done():
                      if master == master_id:
                          # Targeted master previous send not done yet, call again later
                          return False
                      else:
                          # Fallback master is busy, try the next one
                          continue
                  elif future.exception():
                      # Previous execution on this master returned an error
                      log.error(
                          'Unable to call %s on %s, trying another...',
                          func, master
                      )
                      self._mark_master_dead(master)
                      del self.pub_futures[master]
                      # Add not sent data to the delayed list and try the next master
                      self.delayed.extend(data)
                      continue
              future = getattr(syndic_future.result(), func)(values,
                                                             '_syndic_return',
                                                             timeout=self._return_retry_timer(),
                                                             sync=False)
              self.pub_futures[master] = (future, values)
              return True
          # Loop done and didn't exit: wasn't sent, try again later
          return False