On 01/02/18 21:29, Roger Riggs wrote:
Hi Chris,

Thanks for the review and suggestion.

Webrev updated:

This looks good to me, just a few small comments:

1) windows SocketImpl.c in the comments:
java_net_AbstractPlainSocketImpl -> java_net_SocketCleanable_cleanupClose0

2) needs a copyright header


  * Refactored SocketCleanup into a package private SocketCleanable
  * Moved register and unregister into static methods in SocketCleanable
  * Simplified the test by retaining the checking for GC reclaimed
    objects but
    removed checking fd counts, since they were unreliable in testing
    and not consistent across OS's

Thanks, Roger

On 2/1/2018 10:11 AM, Chris Hegarty wrote:
Hi Roger,

On 31 Jan 2018, at 15:52, Roger Riggs<>  wrote:

On 1/30/2018 5:08 PM, Roger Riggs wrote:
Please review changes to replace finalizers in socket, datagram, and multicast 
with Cleaner based release of the raw file descriptors.  Each FileDescriptor is 
for cleanup after the raw fd (or handle) is assigned.  Normal calls to close 
unregister the
cleaner before using the current logic to close the raw fd/handle. Windows 
uses fd's with the Windows socket_ API requiring a special cased Cleanable.

The tests check that the implementation objects including FileDescriptors are 
and for Linux that the raw fd counts are reduced as expected.

I think this is good. One small comment; could SocketCleanup be a
top-level package-private class, since it is shared by the three
different socket types.

I didn’t look too hard at the tests, other than to note that they seem
to verify expected behaviour, which is good.


Reply via email to