diff options
author | Roman Kennke <roman@kennke.org> | 2006-12-04 20:13:12 +0000 |
---|---|---|
committer | Roman Kennke <roman@kennke.org> | 2006-12-04 20:13:12 +0000 |
commit | 993c7d174871d15da9eace2f8651879687392af2 (patch) | |
tree | b1d0471e44f724f06f7a437c57f4023cc0dac43c | |
parent | 22bd14a3a7ecf5c8a11ffb7ff57d4eef4c1f2cc1 (diff) | |
download | classpath-993c7d174871d15da9eace2f8651879687392af2.tar.gz |
2006-12-04 Roman Kennke <kennke@aicas.com>
* native/jni/java-nio/gnu_java_nio_VMChannel.c
(Java_gnu_java_nio_VMChannel_connect): Retry on EINTR.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | native/jni/java-nio/gnu_java_nio_VMChannel.c | 11 |
2 files changed, 14 insertions, 2 deletions
@@ -1,5 +1,10 @@ 2006-12-04 Roman Kennke <kennke@aicas.com> + * native/jni/java-nio/gnu_java_nio_VMChannel.c + (Java_gnu_java_nio_VMChannel_connect): Retry on EINTR. + +2006-12-04 Roman Kennke <kennke@aicas.com> + * java/awt/font/TextLayout.java (hitTestChar): Fixed conditions for inclusion of range. Use layout information in the run for more efficiency. diff --git a/native/jni/java-nio/gnu_java_nio_VMChannel.c b/native/jni/java-nio/gnu_java_nio_VMChannel.c index a8df3ad33..8d8aefe5d 100644 --- a/native/jni/java-nio/gnu_java_nio_VMChannel.c +++ b/native/jni/java-nio/gnu_java_nio_VMChannel.c @@ -1036,6 +1036,7 @@ Java_gnu_java_nio_VMChannel_connect (JNIEnv *env, jclass clazz __attribute__((un int origflags = 0, flags; jbyte *addr_elems; int ret; + int tmpErrno; if ((*env)->GetArrayLength (env, addr) != 4) { @@ -1074,8 +1075,14 @@ Java_gnu_java_nio_VMChannel_connect (JNIEnv *env, jclass clazz __attribute__((un sockaddr.sin_addr.s_addr = *((uint32_t *) addr_elems); - ret = cpnio_connect (fd, (struct sockaddr *) &sockaddr, - sizeof (struct sockaddr_in)); + do + { + ret = cpnio_connect (fd, (struct sockaddr *) &sockaddr, + sizeof (struct sockaddr_in)); + tmpErrno = errno; + } + while (ret == -1 && errno == EINTR && ! JCL_thread_interrupted(env)); + errno = tmpErrno; (*env)->ReleaseByteArrayElements (env, addr, addr_elems, JNI_ABORT); |