Not quite sure about "volatile + double-check". If JVM can inline "choice.get()", it should be same as "accessing a volatile var".