docs: private synchronized void evaluateConditions() {
          // Copy the current Conditions ...
          Set<IWatchedCondition> copiedConditions = this.copyConditions();
  
          // check the conditions ....
          for (Iterator<IWatchedCondition> iterator = copiedConditions.iterator(); iterator.hasNext(); ) {
              IWatchedCondition cond = iterator.next();
  
              synchronized (cond) {
                  // the conditions are not accessed in a synchronized way. This has to be  make sure by the Implementations
                  if (cond.isActive() && !cond.checkCondition()) {
                      cond.conditionViolated();
                  }
              }
          }
          return;
      }