code: def send_stderr(self, s):
          
          size = len(s)
          self.lock.acquire()
          try:
              size = self._wait_for_send_window(size)
              if size == 0:
                  # eof or similar
                  return 0
              m = Message()
              m.add_byte(cMSG_CHANNEL_EXTENDED_DATA)
              m.add_int(self.remote_chanid)
              m.add_int(1)
              m.add_string(s[:size])
          finally:
              self.lock.release()
          # Note: We release self.lock before calling _send_user_message.
          # Otherwise, we can deadlock during re-keying.
          self.transport._send_user_message(m)
          return size
docs: Send data to the channel on the "stderr" stream.  This is normally
          only used by servers to send output from shell commands -- clients
          won't use this.  Returns the number of bytes sent, or 0 if the channel
          stream is closed.  Applications are responsible for checking that all
          data has been sent: if only some of the data was transmitted, the
          application needs to attempt delivery of the remaining data.
          
          :param str s: data to send.
          :return: number of bytes actually sent, as an `int`.
          
          :raises socket.timeout:
              if no data could be sent before the timeout set by `settimeout`.
          
          .. versionadded:: 1.1