code: public synchronized <Solution_> boolean addProblemFactChange(ProblemFactChange<Solution_> problemFactChange) {
          boolean added = problemFactChangeQueue.add(problemFactChange);
          notifyAll();
          return added;
      }
docs: Concurrency note: unblocks {@link #waitForRestartSolverDecision()}.
  @param problemFactChange never null
  @return as specified by {@link Collection#add}