} else { break; }
} else if ((err == EINTR) && (!_PR_PENDING_INTERRUPT(me))) { continue;  } else { break; }
_MD_send (PRFileDesc *fd, const void *buf, PRInt32 amount, PRInt32 flags,          PRIntervalTime timeout){    PRInt32 osfd = fd->secret->md.osfd;    PRInt32 rv, err;    PRThread *me = _PR_MD_CURRENT_THREAD();#ifndef BONE_VERSION    if (fd->secret->md.sock_state & BE_SOCK_SHUTDOWN_WRITE)    {	_PR_MD_MAP_SEND_ERROR(EPIPE);	return -1;    }#endif    while ((rv = send(osfd, buf, amount, flags)) == -1) {	err = _MD_ERRNO();	if ((err == EAGAIN) || (err == EWOULDBLOCK)) {	    if (fd->secret->nonblocking) {		break;	    }#ifndef BONE_VERSION	    if( _PR_PENDING_INTERRUPT(me)) {                me->flags &= ~_PR_INTERRUPT;                PR_SetError( PR_PENDING_INTERRUPT_ERROR, 0);                return -1;            }	    /* in UNIX implementations, you could do a socket_io_wait here.	     * but since BeOS doesn't yet support WRITE notification in select,	     * you're spanked.	     */	     snooze( 10000L );	     continue;#else /* BONE_VERSION */	    if ((rv = socket_io_wait(osfd, WRITE_FD, timeout))< 0)		goto done; #endif		} else if ((err == EINTR) && (!_PR_PENDING_INTERRUPT(me))) {	    continue;	} else {	    break;	}    }    if (rv < 0) {	_PR_MD_MAP_SEND_ERROR(err);    }#ifdef BONE_VERSIONdone:#endif    return(rv);}