equal
deleted
inserted
replaced
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) |