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

def send_messages(self, email_messages):

    if (not email_messages):
        return
    self._lock.acquire()
    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
    finally:
        self._lock.release()
    return len(email_messages)
