You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It is unclear whether the result can boil down to OOTA if both #1 and #4 return true. The loop won't be evaluated when pre equals 0 and the loop will be evaluated otherwise, in both cases, #5 can be eventually executed. The difference might be that the loop could be infinite in the latter case such that #5 won't be reached.
Not sure whether the code in thread 2 is semantically equivalent to
such that y.store(1,relaxed) logically depends on the value of pre(i.e. x.load(relaxed)). Or, it semantically equals that y.store(1,relaxed) is irrelevant to whatever value x.load(relaxed) returns because y.store(1,relaxed) would be always executed in any branch. An arguable part is whether y.store(1,relaxed) should be considered as depending on the loop, as said above, the loop might be infinite such that the store to y is unreached.
It is clear that OOTA occurs in the first equivalent transformation, however, it's vague in the second.
Suggested Resolution:
The text was updated successfully, but these errors were encountered:
Full name of submitter (unless configured in github; will be published with the issue): Jim X
Consider this example:
It is unclear whether the result can boil down to OOTA if both
#1
and#4
returntrue
. The loop won't be evaluated whenpre
equals0
and the loop will be evaluated otherwise, in both cases,#5
can be eventually executed. The difference might be that the loop could be infinite in the latter case such that#5
won't be reached.Not sure whether the code in thread 2 is semantically equivalent to
such that
y.store(1,relaxed)
logically depends on the value ofpre
(i.e.x.load(relaxed)
). Or, it semantically equals thaty.store(1,relaxed)
is irrelevant to whatever valuex.load(relaxed)
returns becausey.store(1,relaxed)
would be always executed in any branch. An arguable part is whethery.store(1,relaxed)
should be considered as depending on the loop, as said above, the loop might be infinite such that the store to y is unreached.It is clear that OOTA occurs in the first equivalent transformation, however, it's vague in the second.
Suggested Resolution:
The text was updated successfully, but these errors were encountered: