docs: private void joinAllThreads() {
          Iterator iter = registeredWachdogs.values().iterator();
          while (iter.hasNext()) {
              Watchdog th = (Watchdog) iter.next();
              boolean isJoining = true;
              if (!th.isAlive() && log.isDebugEnabled()) {
                  log.debug("Thread " + th + " finished");
              }
              while (th.isAlive() && isJoining) {
                  try {
                      th.getThread().join();
                      isJoining = false;
                      if (log.isDebugEnabled()) {
                          log.debug("Thread " + th + " joined and finished");
                      }
                  } catch (InterruptedException e) {
                  }
              }
          }
      }