AtomicReference<FlowletProgramController> controller) {
this.streamCoordinator = streamCoordinator;
this.streams = streams;
this.controller = controller;
this.executor = ExecutorUtils.newThreadExecutor(Threads.createDaemonThreadFactory("flowlet-stream-update-%d"));
this.propertyListener = new StreamPropertyListener() {
@Override
public void ttlChanged(String streamName, long ttl) {
LOG.debug("TTL for stream '{}' changed to {} for flowlet '{}'", streamName, ttl, flowletName);
suspendAndResume();
}