callOperatorOpen();
final AtomicInteger countdown = new AtomicInteger(sourceRunnables.size());
threads = new ArrayList<Thread>();
for (int i = 0; i < sourceRunnables.size(); i++) {
GraphSourceRunnable runnable = sourceRunnables.get(i);
String threadName = "esper." + dataFlowName + "-" + i;
Thread thread = new Thread(runnable, threadName);
thread.setContextClassLoader(Thread.currentThread().getContextClassLoader());
thread.setDaemon(true);
runnable.addCompletionListener(new CompletionListener() {
public void completed() {
int remaining = countdown.decrementAndGet();
if (remaining == 0) {
EPDataFlowInstanceImpl.this.completed();
}