< prev index next >

src/java.base/windows/native/libnio/ch/WindowsSelectorImpl.c

Print this page
rev 53271 : 8216981: Per thread IO statistics in JFR

@@ -196,35 +196,44 @@
 
 JNIEXPORT void JNICALL
 Java_sun_nio_ch_WindowsSelectorImpl_setWakeupSocket0(JNIEnv *env, jclass this,
                                                 jint scoutFd)
 {
+    int written;
     /* Write one byte into the pipe */
     const char byte = 1;
-    send(scoutFd, &byte, 1, 0);
+    written = send(scoutFd, &byte, 1, 0);
+
+    if (written > 0) {
+        JVM_callFileWriteBytes(env, written);
+    }
 }
 
 JNIEXPORT void JNICALL
 Java_sun_nio_ch_WindowsSelectorImpl_resetWakeupSocket0(JNIEnv *env, jclass this,
                                                 jint scinFd)
 {
     char bytes[WAKEUP_SOCKET_BUF_SIZE];
     long bytesToRead;
+    int read;
 
     /* Drain socket */
     /* Find out how many bytes available for read */
     ioctlsocket (scinFd, FIONREAD, &bytesToRead);
     if (bytesToRead == 0) {
         return;
     }
     /* Prepare corresponding buffer if needed, and then read */
     if (bytesToRead > WAKEUP_SOCKET_BUF_SIZE) {
         char* buf = (char*)malloc(bytesToRead);
-        recv(scinFd, buf, bytesToRead, 0);
+        read = recv(scinFd, buf, bytesToRead, 0);
         free(buf);
     } else {
-        recv(scinFd, bytes, WAKEUP_SOCKET_BUF_SIZE, 0);
+        read = recv(scinFd, bytes, WAKEUP_SOCKET_BUF_SIZE, 0);
+    }
+    if (read > 0) {
+        JVM_callNetworkReadBytes(env, read);
     }
 }
 
 JNIEXPORT jboolean JNICALL
 Java_sun_nio_ch_WindowsSelectorImpl_discardUrgentData(JNIEnv* env, jobject this,
< prev index next >