src/java.base/unix/native/libnio/ch/Net.c
branchniosocketimpl-branch
changeset 57274 07b6be5d9150
parent 57268 adcdd45830a0
child 57278 bf925a3ee68a
equal deleted inserted replaced
57270:3519688a4e4d 57274:07b6be5d9150
   802         handleSocketError(env, errno);
   802         handleSocketError(env, errno);
   803         return IOS_THROWN;
   803         return IOS_THROWN;
   804     }
   804     }
   805 }
   805 }
   806 
   806 
   807 JNIEXPORT jint JNICALL
   807 JNIEXPORT jboolean JNICALL
   808 Java_sun_nio_ch_Net_pollConnect(JNIEnv *env, jobject this, jobject fdo, jlong timeout)
   808 Java_sun_nio_ch_Net_pollConnect(JNIEnv *env, jobject this, jobject fdo, jlong timeout)
   809 {
   809 {
   810     jint fd = fdval(env, fdo);
   810     jint fd = fdval(env, fdo);
   811     struct pollfd poller;
   811     struct pollfd poller;
   812     int result;
   812     int result;
   833             return handleSocketError(env, error);
   833             return handleSocketError(env, error);
   834         } else if ((poller.revents & POLLHUP) != 0) {
   834         } else if ((poller.revents & POLLHUP) != 0) {
   835             return handleSocketError(env, ENOTCONN);
   835             return handleSocketError(env, ENOTCONN);
   836         }
   836         }
   837         // connected
   837         // connected
   838         return 1;
   838         return JNI_TRUE;
   839     } else if (result == 0) {
   839     } else if (result == 0 || errno == EINTR) {
   840         return 0;
   840         return JNI_FALSE;
   841     } else {
   841     } else {
   842         if (errno == EINTR) {
   842         JNU_ThrowIOExceptionWithLastError(env, "poll failed");
   843             return IOS_INTERRUPTED;
   843         return JNI_FALSE;
   844         } else {
       
   845             JNU_ThrowIOExceptionWithLastError(env, "poll failed");
       
   846             return IOS_THROWN;
       
   847         }
       
   848     }
   844     }
   849 }
   845 }
   850 
   846 
   851 JNIEXPORT jshort JNICALL
   847 JNIEXPORT jshort JNICALL
   852 Java_sun_nio_ch_Net_pollinValue(JNIEnv *env, jclass this)
   848 Java_sun_nio_ch_Net_pollinValue(JNIEnv *env, jclass this)