On Mon, 26 Apr 2021 17:10:13 GMT, Maurizio Cimadamore <mcimadam...@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

Reply via email to