LISA IRRWIW+poacquireonces+OnceRelease
"RfeOnceAcquire PodRRAcquireOnce FreOnceRelease RfeReleaseAcquire PodRWAcquireOnce WseOnceOnce"
Cycle=PodRWAcquireOnce WseOnceOnce RfeOnceAcquire PodRRAcquireOnce FreOnceRelease RfeReleaseAcquire
Relax=RfeOnceAcquire FreOnceRelease RfeReleaseAcquire
Safe=PodRWAcquireOnce PodRRAcquireOnce WseOnceOnce
Prefetch=1:x=F,1:y=T,3:y=F,3:x=W
Com=Rf Fr Rf Ws
Orig=RfeOnceAcquire PodRRAcquireOnce FreOnceRelease RfeReleaseAcquire PodRWAcquireOnce WseOnceOnce
{
}
P0 | P1 | P2 | P3 ;
w[once] x 2 | r[acquire] r0 x | w[release] y 1 | r[acquire] r0 y ;
| r[once] r1 y | | w[once] x 1 ;
Observed
x=2; 3:r0=1; 1:r1=0; 1:r0=1;
and x=1; 3:r0=1; 1:r1=0; 1:r0=1;