'Write all messages to the stream in a thread-safe way.'

def send_messages(self, email_messages):

    if (not email_messages):
        return
    with self._lock:
        try:
            stream_created = self.open()
            for message in email_messages:
                self.stream.write(('%s\n' % message.message().as_string()))
                self.stream.write(('-' * 79))
                self.stream.write('\n')
                self.stream.flush()
            if stream_created:
                self.close()
        except:
            if (not self.fail_silently):
                raise
    return len(email_messages)
