PORT_Assert( ssl_HaveXmitBufLock(ss) );
PORT_Assert( ss->opt.noLocks || ssl_HaveXmitBufLock(ss) );
ssl3_SendApplicationData(sslSocket *ss, const unsigned char *in,			 PRInt32 len, PRInt32 flags){    PRInt32   sent	= 0;    PORT_Assert( ssl_HaveXmitBufLock(ss) );    while (len > 0) {	PRInt32   count;	if (sent > 0) {	    /*	     * The thread yield is intended to give the reader thread a	     * chance to get some cycles while the writer thread is in	     * the middle of a large application data write.  (See	     * Bugzilla bug 127740, comment #1.)	     */	    ssl_ReleaseXmitBufLock(ss);	    PR_Sleep(PR_INTERVAL_NO_WAIT);	/* PR_Yield(); */	    ssl_GetXmitBufLock(ss);	}	count = ssl3_SendRecord(ss, content_application_data, in, len,	                           flags | ssl_SEND_FLAG_NO_BUFFER);	if (count < 0) {	    return (sent > 0) ? sent : count;				    /* error code set by ssl3_SendRecord */	}	sent += count;	len  -= count;	in   += count;    }    return sent;}