[Integrated] [foreign-memaccess] RFR: Simplify MemoryScope implementation to use StampedLock

Maurizio Cimadamore mcimadamore at openjdk.java.net
Wed May 13 21:03:38 UTC 2020


On Wed, 13 May 2020 18:01:17 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:

> I've been playing around a bit and discussed this offline with @JornVernee too. A realization I had some time ago is
> that what we're trying to do here is a read/write lock, where multiple acquire can occur at the same time, but where
> close of the root should be exclusive. I think all the machinery around `CLOSING` is essentially due to the code trying
> to mimic that pattern.  This patch simplifies over the status quo, by using a `StampedLock` instead of managing races
> manually through a `CLOSING` state. The tweaked implementation also adds back the atomicity w.r.t. close() vs. dup()
> which was seeked in a previous attempt (see https://git.openjdk.java.net/panama-foreign/pull/160). Also, since now
> there some guarantee that no acquire can take place while a close is also taking place (and pending acquires will be
> invalidated - using the optimistic read logic), then we can just use a single long adder instead of two.  The state is
> also simplified, since we just need a boolean flag.  I ran the `ParallelSum` benchmark and could not spot any obvious
> regression compared to the previous code.

This pull request has now been integrated.

Changeset: 667f7f02
Author:    Maurizio Cimadamore <mcimadamore at openjdk.org>
URL:       https://git.openjdk.java.net/panama-foreign/commit/667f7f02
Stats:     65 lines in 1 file changed: 14 ins; 23 del; 28 mod

Simplify MemoryScope implementation to use StampedLock

Reviewed-by: psandoz

-------------

PR: https://git.openjdk.java.net/panama-foreign/pull/163


More information about the panama-dev mailing list