code: def global_request(self, kind, data=None, wait=True):
          
          if wait:
              self.completion_event = threading.Event()
          m = Message()
          m.add_byte(cMSG_GLOBAL_REQUEST)
          m.add_string(kind)
          m.add_boolean(wait)
          if data is not None:
              m.add(*data)
          self._log(DEBUG, 'Sending global request "%s"' % kind)
          self._send_user_message(m)
          if not wait:
              return None
          while True:
              self.completion_event.wait(0.1)
              if not self.active:
                  return None
              if self.completion_event.isSet():
                  break
          return self.global_response
docs: Make a global request to the remote host.  These are normally
          extensions to the SSH2 protocol.
  
          :param str kind: name of the request.
          :param tuple data:
              an optional tuple containing additional data to attach to the
              request.
          :param bool wait:
              ``True`` if this method should not return until a response is
              received; ``False`` otherwise.
          :return:
              a `.Message` containing possible additional data if the request was
              successful (or an empty `.Message` if ``wait`` was ``False``);
              ``None`` if the request was denied.