docs: def restart(self, timeout=None, task=None, block_callbacks=False, role=None):
          """Restarts PostgreSQL.
  
          When timeout parameter is set the call will block either until PostgreSQL has started, failed to start or
          timeout arrives.
  
          :returns: True when restart was successful and timeout did not expire when waiting.
          """
          self.set_state('restarting')
          if not block_callbacks:
              self.__cb_pending = ACTION_ON_RESTART
          ret = self.stop(block_callbacks=True) and self.start(timeout, task, True, role)
          if not ret and not self.is_starting():
              self.set_state('restart failed ({0})'.format(self.state))
          return ret