RFR: 8264774: Implementation of Foreign Function and Memory API (Incubator)
Chris Hegarty
chegar at openjdk.java.net
Wed Apr 28 09:14:53 UTC 2021
On Mon, 26 Apr 2021 17:10:13 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:
> This PR contains the API and implementation changes for JEP-412 [1]. A more detailed description of such changes, to avoid repetitions during the review process, is included as a separate comment.
>
> [1] - https://openjdk.java.net/jeps/412
src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/ResourceScope.java line 135:
> 133: } finally {
> 134: segment.scope().release(segmentHandle);
> 135: }
I do like the symmetry in this example, but just to add an alternative idiom:
`segmentHandle.scope().release(segmentHandle)`
, which guarantees to avoid release throwing and IAE
src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/ResourceScope.java line 186:
> 184: * <li>this resource scope is confined, and this method is called from a thread other than the thread owning this resource scope</li>
> 185: * <li>this resource scope is shared and a resource associated with this scope is accessed while this method is called</li>
> 186: * <li>one or more handles (see {@link #acquire()}) associated with this resource scope have not been closed</li>
Minor spec suggestion: "... associated with this resource scope have not been *released*"
src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/ResourceScope.java line 205:
> 203: * until all the resource scope handles acquired from it have been {@link #release(Handle)} released}.
> 204: * @return a resource scope handle.
> 205: */
Given recent changes, it might be good to generalise the opening sentence here. Maybe :
" Acquires a resource scope handle associated with this resource scope. If the resource scope is explicit ... " Or some such.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3699
More information about the nio-dev
mailing list