package edu.rice.hj.example.comp322; import edu.rice.hj.api.HjMetrics; import edu.rice.hj.runtime.config.HjSystemProperty; import edu.rice.hj.runtime.metrics.AbstractMetricsManager; import edu.rice.hj.api.HjFuture; import static edu.rice.hj.Module1.*; /** * Question: https://wiki.rice.edu/confluence/download/attachments/4435861/COMP322-S14-WS5.pdf?version=1&modificationDate=1390864665697&api=v2 * * @author Shams Imam (shams@rice.edu) */ public class Worksheet5 { public static void main(String[] args) { System.setProperty(HjSystemProperty.abstractMetrics.propertyKey(), "true"); initializeHabanero(); final HjFuture A = future(() -> { System.out.println("A"); doWork(1); return null; }); final HjFuture B = future(() -> { A.get(); System.out.println("B"); doWork(1); return null; }); final HjFuture C = future(() -> { A.get(); System.out.println("C"); doWork(1); return null; }); final HjFuture D = future(() -> { B.get(); C.get(); System.out.println("D"); doWork(1); return null; }); final HjFuture E = future(() -> { C.get(); System.out.println("E"); doWork(1); return null; }); final HjFuture F = future(() -> { D.get(); E.get(); System.out.println("F"); doWork(1); return null; }); F.get(); finalizeHabanero(); final HjMetrics actualMetrics = abstractMetrics(); AbstractMetricsManager.dumpStatistics(actualMetrics); System.out.println(actualMetrics); } }