RFR 8195059: Update java.net Socket and DatagramSocket implementations to use Cleaner

Roger Riggs Roger.Riggs at Oracle.com
Fri Feb 2 17:07:04 UTC 2018


Hi Chris,

Updated in place.
   http://cr.openjdk.java.net/~rriggs/webrev-net-cleanup-8195059/

Thanks, Roger


On 2/2/2018 11:30 AM, Chris Hegarty wrote:
> Roger,
>
> On 01/02/18 21:29, Roger Riggs wrote:
>> Hi Chris,
>>
>> Thanks for the review and suggestion.
>>
>> Webrev updated:
>> http://cr.openjdk.java.net/~rriggs/webrev-net-cleanup-8195059/
>
> 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) SocketCleanable.java needs a copyright header
>
> -Chris.
>
>>   * Refactored SocketCleanup into a java.net 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<Roger.Riggs at oracle.com>  wrote:
>>>>
>>>> Addingnet-dev at openjdk.java.net
>>>>
>>>> On 1/30/2018 5:08 PM, Roger Riggs wrote:
>>>>> Please review changes to replace finalizers in socket, datagram, 
>>>>> and multicast networking
>>>>> with Cleaner based release of the raw file descriptors. Each 
>>>>> FileDescriptor is registered
>>>>> 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 networking
>>>>> uses fd's with the Windows socket_ API requiring a special cased 
>>>>> Cleanable.
>>>>>
>>>>> The tests check that the implementation objects including 
>>>>> FileDescriptors are reclaimed
>>>>> and for Linux that the raw fd counts are reduced as expected.
>>>>>
>>>>> Webrev:
>>>>> http://cr.openjdk.java.net/~rriggs/webrev-net-cleanup-8195059/
>>> 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.
>>>
>>> -Chris.
>>



More information about the core-libs-dev mailing list