docs: private void waitForChanges(final Map<String, String> changes) throws InterruptedException {
          WorkflowSystem.OperationCompleted<DAT> take = stateChangeQueue.poll(sleeper.time(), sleeper.unit());
          if (null == take || take.getNewState().getState().isEmpty()) {
              sleeper.backoff();
              return;
          }
  
          sleeper.reset();
  
          changes.putAll(take.getNewState().getState());
  
          if (null != sharedData) {
              sharedData.addData(take.getResult());
          }
  
          getAvailableChanges(changes);
      }