def _send_user_message(self, data):
start = time.time()<EOL>while True:<EOL><INDENT>self.clear_to_send.wait(<NUM_LIT:0.1>)<EOL>if not self.active:<EOL><INDENT>self._log(DEBUG, '<STR_LIT>')<EOL>return<EOL><DEDENT>self.clear_to_send_lock.acquire()<EOL>if self.clear_to_send.isSet():<EOL><INDENT>break<EOL><DEDENT>self.clear_to_send_lock.release()<EOL>if time.time() > start + self.clear_to_send_timeout:<EOL><INDENT>raise SSHException('<STR_LIT>')<EOL><DEDENT><DEDENT>try:<EOL><INDENT>self._send_message(data)<EOL><DEDENT>finally:<EOL><INDENT>self.clear_to_send_lock.release()<EOL><DEDENT>
send a message, but block if we're in key negotiation.  this is used
for user-initiated requests.