From 3e841c759618964e52f2fdaffd58c9b3ec9d6f08 Mon Sep 17 00:00:00 2001 From: Simon Ebner Date: Thu, 9 Jan 2014 08:35:50 +0100 Subject: [PATCH] FDA-102 --- .../main/java/ch/psi/fda/rest/FdaqEngine.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/rest/FdaqEngine.java b/ch.psi.fda/src/main/java/ch/psi/fda/rest/FdaqEngine.java index a97bbeb..80b6ee0 100644 --- a/ch.psi.fda/src/main/java/ch/psi/fda/rest/FdaqEngine.java +++ b/ch.psi.fda/src/main/java/ch/psi/fda/rest/FdaqEngine.java @@ -19,6 +19,7 @@ package ch.psi.fda.rest; import java.io.File; +import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import javax.inject.Inject; @@ -40,12 +41,21 @@ public class FdaqEngine { private ZMQDataService zmqService; private boolean stream = false; + private ExecutorService eservice; + @Inject public FdaqEngine(ZMQDataService zmqService){ this.zmqService = zmqService; + + eservice = Executors.newSingleThreadExecutor(); } public void acquire(String trackingId, FdaqRequest request){ + + if(fdaq!=null && fdaq.isRunning()){ + throw new IllegalStateException("FDAQ is already running"); + } + bus = new AsyncEventBus(Executors.newSingleThreadExecutor()); fdaq = new FdaqService(bus); @@ -60,8 +70,13 @@ public class FdaqEngine { bus.register(zmqService); } - - fdaq.acquire(); + + eservice.execute(new Runnable() { + @Override + public void run() { + fdaq.acquire(); + } + }); } public void stop(){