Mercurial > hg > truffle
changeset 19719:7241e6dfcafd
Merge.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Mon, 09 Mar 2015 15:04:08 +0100 |
parents | d30a0545ddc2 (current diff) dc7189b2bb5f (diff) |
children | 79a472b4f024 |
files | |
diffstat | 1 files changed, 8 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CyclicAssumption.java Mon Mar 09 14:18:08 2015 +0100 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CyclicAssumption.java Mon Mar 09 15:04:08 2015 +0100 @@ -24,6 +24,8 @@ */ package com.oracle.truffle.api.utilities; +import java.util.concurrent.atomic.*; + import com.oracle.truffle.api.*; /** @@ -36,23 +38,21 @@ public class CyclicAssumption { private final String name; - private Assumption assumption; + private final AtomicReference<Assumption> assumption; public CyclicAssumption(String name) { this.name = name; - invalidate(); + this.assumption = new AtomicReference<>(Truffle.getRuntime().createAssumption(name)); } public void invalidate() { - if (assumption != null) { - assumption.invalidate(); - } - - assumption = Truffle.getRuntime().createAssumption(name); + Assumption newAssumption = Truffle.getRuntime().createAssumption(name); + Assumption oldAssumption = assumption.getAndSet(newAssumption); + oldAssumption.invalidate(); } public Assumption getAssumption() { - return assumption; + return assumption.get(); } }