[foreign-jextract] RFR: Minor change for possible race in shared resource list [v2]
Radoslaw Smogura
github.com+7535718+rsmogura at openjdk.java.net
Mon Apr 26 11:34:59 UTC 2021
On Sat, 24 Apr 2021 16:14:05 GMT, Radoslaw Smogura <github.com+7535718+rsmogura at openjdk.org> wrote:
>> (1) One or more threads can see "prev" as CLOSED_LIST. Even those CAS will be performed
>> and list head will be set to new cleanup. Than exception is going to be thrown.
>>
>> (2) Than cleanup will continue (maybe skipping just added cleanup).
>>
>> If in addition, other thread will join in parallel to (1) with cleanup2, than
>> queue could look like this HEAD = cleanup2 -> list end marker.
>
> Radoslaw Smogura has updated the pull request incrementally with one additional commit since the last revision:
>
> Make update of list head (FST) using atomic CAS, because
> `cleanup` method can race with `add` about changing FST.
>
> Small code re-arrangement, to disable double load of FST during first loop pass
It's more theoretical, then practical, as code paths, rather makes CAS in cleanup not concurrent with add and two threads can't practically add cleanup action on the same scope, as cleanup action is triggered after marking scope as CLOSED.
-------------
PR: https://git.openjdk.java.net/panama-foreign/pull/519
More information about the panama-dev
mailing list