code: protected boolean firstOfAllClients(final Address joiner, final Responses rsps) {
          log.trace("%s: could not determine coordinator from rsps %s", gms.local_addr, rsps);
  
          // so the member to become singleton member (and thus coord) is the first of all clients
          SortedSet<Address> clients=new TreeSet<>();
          clients.add(joiner); // add myself again (was removed by findInitialMembers())
          for(PingData response: rsps)
              clients.add(response.getAddress());
  
          log.trace("%s: nodes to choose new coord from are: %s", gms.local_addr, clients);
          Address new_coord=clients.first();
          if(new_coord.equals(joiner)) {
              log.trace("%s: I (%s) am the first of the nodes, will become coordinator", gms.local_addr, joiner);
              becomeSingletonMember(joiner);
              return true;
          }
          log.trace("%s: I (%s) am not the first of the nodes, waiting for another client to become coordinator",
                    gms.local_addr, joiner);
          // Util.sleep(500);
          return false;
      }
docs: Handles the case where no coord responses were received. Returns true if we became the coord
  (caller needs to terminate the join() call), or false when the caller needs to continue