Mercurial > hg > shenandoah-preopenjdk-archive > openjdk8 > jdk
changeset 10224:98ec3f89656c
8062501: Modifications of server socket channel accept() methods for instrumentation purposes
Summary: Wrap accept0() native methods in Java accept().
Reviewed-by: chegar, alanb
author | bpb |
---|---|
date | Thu, 30 Oct 2014 11:31:17 -0700 |
parents | 74a1044f8e0f |
children | e644a7f00328 |
files | src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java src/solaris/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java |
diffstat | 2 files changed, 27 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java Wed Oct 22 11:18:23 2014 -0700 +++ b/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java Thu Oct 30 11:31:17 2014 -0700 @@ -247,7 +247,7 @@ return null; thread = NativeThread.current(); for (;;) { - n = accept0(this.fd, newfd, isaa); + n = accept(this.fd, newfd, isaa); if ((n == IOStatus.INTERRUPTED) && isOpen()) continue; break; @@ -410,6 +410,18 @@ return sb.toString(); } + /** + * Accept a connection on a socket. + * + * @implNote Wrap native call to allow instrumentation. + */ + private int accept(FileDescriptor ssfd, FileDescriptor newfd, + InetSocketAddress[] isaa) + throws IOException + { + return accept0(ssfd, newfd, isaa); + } + // -- Native methods -- // Accepts a new connection, setting the given file descriptor to refer to
--- a/src/solaris/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java Wed Oct 22 11:18:23 2014 -0700 +++ b/src/solaris/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java Thu Oct 30 11:31:17 2014 -0700 @@ -141,7 +141,7 @@ Throwable exc = null; try { begin(); - int n = accept0(this.fd, newfd, isaa); + int n = accept(this.fd, newfd, isaa); // spurious wakeup, is this possible? if (n == IOStatus.UNAVAILABLE) { @@ -277,7 +277,7 @@ try { begin(); - int n = accept0(this.fd, newfd, isaa); + int n = accept(this.fd, newfd, isaa); if (n == IOStatus.UNAVAILABLE) { // need calling context when there is security manager as @@ -332,6 +332,18 @@ } } + /** + * Accept a connection on a socket. + * + * @implNote Wrap native call to allow instrumentation. + */ + private int accept(FileDescriptor ssfd, FileDescriptor newfd, + InetSocketAddress[] isaa) + throws IOException + { + return accept0(ssfd, newfd, isaa); + } + // -- Native methods -- private static native void initIDs();