package edu.rice.hj.example.primers; import edu.rice.hj.api.HjFinishAccumulator; import edu.rice.hj.api.HjOperator; import static edu.rice.hj.Module1.*; /** * Send operations within registered finish are not reflected * into the result until the end-finish point. * * @author Shams Imam (shams@rice.edu) */ public class FinishAccumulatorExample1 { /** *

main.

* * @param args an array of {@link String} objects. */ public static void main(final String[] args) { launchHabaneroApp(() -> { final HjFinishAccumulator f = newFinishAccumulator(HjOperator.SUM, int.class); finish(f, () -> { f.put(1); finish(() -> { f.put(1); }); final int accumValue = f.get().intValue(); System.out.println("Inside finish: accumulator value = " + accumValue); assert accumValue == 0; }); final int accumValue = f.get().intValue(); System.out.println("Outside finish: accumulator value = " + accumValue); assert accumValue == 2; }); } }