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