docs: @Override
      public void claimWork() throws InterruptedException {
          int claimed = cluster.myWorkUnits.size();
          int nodeCount = activeNodeSize();
  
          synchronized (cluster.allWorkUnits) {
              final int maxToClaim = getMaxToClaim(nodeCount);
  
              LOG.debug("{} Nodes: {}. {}: {}.", cluster.name, nodeCount, config.workUnitName, cluster.allWorkUnits.size());
              LOG.debug("Claiming {} pegged to me, and up to {} more.", config.workUnitName, maxToClaim);
  
              Set<String> unclaimed = getUnclaimed();
              if (LOG.isDebugEnabled()) {
                  LOG.debug("Handoff requests: {}, Handoff Results: {}, Unclaimed: {}",
                          cluster.descForHandoffRequests(),
                          cluster.descForHandoffResults(),
                      Strings.mkstring(unclaimed, ", "));
              }
  
              for (String workUnit : unclaimed) {
                   if ((isFairGame(workUnit) && claimed < maxToClaim) || isPeggedToMe(workUnit)) {
                     if (config.useSoftHandoff && cluster.containsHandoffRequest(workUnit)
                             && attemptToClaim(workUnit, true)) {
                         LOG.info("Accepted handoff of {}.", workUnit);
                         handoffListener.finishHandoff(workUnit);
                         claimed += 1;
                     } else if (!cluster.containsHandoffRequest(workUnit) && attemptToClaim(workUnit)) {
                         claimed += 1;
                     }
                   }
              }
          }
     }