< prev index next >
src/java.base/windows/native/libnet/TwoStacksPlainDatagramSocketImpl.c
Print this page
rev 53271 : 8216981: Per thread IO statistics in JFR
*** 435,444 ****
--- 435,445 ----
jboolean connected;
SOCKETADDRESS rmtaddr;
struct sockaddr *addrp = 0;
int addrlen = 0;
+ int ret;
if (IS_NULL(packet)) {
JNU_ThrowNullPointerException(env, "null packet");
return;
}
*** 513,528 ****
fullPacket = &(BUF[0]);
}
(*env)->GetByteArrayRegion(env, packetBuffer, packetBufferOffset,
packetBufferLen, (jbyte *)fullPacket);
! if (sendto(fd, fullPacket, packetBufferLen, 0, addrp,
addrlen) == SOCKET_ERROR)
{
NET_ThrowCurrent(env, "Datagram send failed");
}
if (packetBufferLen > MAX_BUFFER_LEN) {
free(fullPacket);
}
}
--- 514,533 ----
fullPacket = &(BUF[0]);
}
(*env)->GetByteArrayRegion(env, packetBuffer, packetBufferOffset,
packetBufferLen, (jbyte *)fullPacket);
! if (ret = sendto(fd, fullPacket, packetBufferLen, 0, addrp,
addrlen) == SOCKET_ERROR)
{
NET_ThrowCurrent(env, "Datagram send failed");
}
+ if (ret > 0) {
+ JVM_callFileWriteBytes(env, ret);
+ }
+
if (packetBufferLen > MAX_BUFFER_LEN) {
free(fullPacket);
}
}
*** 1155,1164 ****
--- 1160,1172 ----
* not connected so ignore it.
*/
retry = TRUE;
}
}
+ if (n > 0) {
+ JVM_callNetworkReadBytes(env, n);
+ }
} while (retry);
/* truncate the data if the packet's length is too small */
if (n > packetBufferLen) {
n = packetBufferLen;
< prev index next >