jksImpl.address = InetAddress.getLocalHost(); jksImpl.native_fd = acceptInternal(jksImpl); jksImpl.localport = getLocalPortInternal();
newSocket.address = java.net.JikesRVMSupport.createInetAddress(0);     boolean hasTimeout = (receiveTimeout > 0); double totalWaitTime = hasTimeout ? ((double) receiveTimeout) / 1000.0 : VM_ThreadEventConstants.WAIT_INFINITE;  int connectionFd; double waitStartTime = hasTimeout ? VM_Time.now() : 0.0;    while (true) {  VM_ThreadIOQueue.selectInProgressMutex.lock();  VM_BootRecord bootRecord = VM_BootRecord.the_boot_record; connectionFd = VM.sysCall2(bootRecord.sysNetSocketAcceptIP, native_fd, VM_Magic.objectAsAddress(newSocket).toInt()); VM_ThreadIOQueue.selectInProgressMutex.unlock();  if (connectionFd >= 0)  break;  switch (connectionFd) { case -1:  continue; case -2: {   if (VM.VerifyAssertions) VM._assert(!hasTimeout || totalWaitTime >= 0.0);  VM_ThreadIOWaitData waitData = VM_Wait.ioWaitRead(native_fd, totalWaitTime);   checkIoWaitRead(waitData);    if (hasTimeout) { double nextWaitStartTime = VM_Time.now(); totalWaitTime -= (nextWaitStartTime - waitStartTime); if (totalWaitTime < 0.0) throw new SocketTimeoutException("socket operation timed out"); waitStartTime = nextWaitStartTime; }  continue; }  default:  throw new SocketException("accept failed"); } }        java.net.JikesRVMSupport.setHostName(newSocket.getInetAddress(), null);     VM_FileSystem.onCreateFileDescriptor(connectionFd, false);   newSocket.native_fd = connectionFd;
    protected void accept(SocketImpl newImpl) throws IOException {	JikesRVMSocketImpl jksImpl = (JikesRVMSocketImpl) newImpl;	jksImpl.address = InetAddress.getLocalHost();	jksImpl.native_fd = acceptInternal(jksImpl);	jksImpl.localport = getLocalPortInternal();    }