package edu.rice.comp322;
import edu.rice.hj.api.HjDataDrivenFuture;
import edu.rice.hj.runtime.actors.Actor;
import edu.rice.hj.runtime.util.Pair;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
import static edu.rice.hj.Module0.launchHabaneroApp;
import static edu.rice.hj.Module0.newDDF;
import static edu.rice.hj.Module1.asyncAwait;
/**
*
SyncReplyMain1 class.
*
* @author Shams Imam (shams@rice.edu)
*/
public class Lec29Slide15SyncReplyActor {
private static final Object END = new Object();
/**
* main.
*
* @param args an array of {@link String} objects.
*/
public static void main(final String[] args) {
System.out.println("SyncReplyMain1.main starts...");
launchHabaneroApp(() -> {
final List workItems = Arrays.asList(1, 2, 3, 4, 5);
final ReceiverActor receiverActor = new ReceiverActor();
receiverActor.start();
final SenderActor senderActor = new SenderActor(receiverActor);
senderActor.start();
for (Object workItem : workItems) {
System.out.println("Sending work item: " + workItem);
senderActor.send(workItem);
}
senderActor.send(END);
});
System.out.println("SyncReplyMain1.main ends.");
}
private static class SenderActor extends Actor