/** * Removes old members from xmit-table and adds new members to xmit-table (at seqnos hd=0, hr=0). * This method is not called concurrently */ protected void adjustReceivers(List<Address> members) { Set<Address> keys=xmit_table.keySet(); // remove members which left for(Address member: keys) { if(!members.contains(member)) { if(Objects.equals(local_addr, member)) continue; Table<Message> buf=xmit_table.remove(member); if(buf != null) log.debug("%s: removed %s from xmit_table (not member anymore)", local_addr, member); } } members.stream().filter(mbr -> !keys.contains(mbr)).forEach(mbr -> xmit_table.putIfAbsent(mbr, createTable(0))); }
buf=createTable(highest_delivered_seqno); xmit_table.put(member, buf);
buf=createTable(highest_delivered_seqno); xmit_table.put(member, buf);
/** * Removes old members from xmit-table and adds new members to xmit-table (at seqnos hd=0, hr=0). * This method is not called concurrently */ protected void adjustReceivers(List<Address> members) { Set<Address> keys=xmit_table.keySet(); // remove members which left for(Address member: keys) { if(!members.contains(member)) { if(Objects.equals(local_addr, member)) continue; Table<Message> buf=xmit_table.remove(member); if(buf != null) log.debug("%s: removed %s from xmit_table (not member anymore)", local_addr, member); } } members.stream().filter(mbr -> !keys.contains(mbr)).forEach(mbr -> xmit_table.putIfAbsent(mbr, createTable(0))); }
buf=createTable(highest_delivered_seqno); xmit_table.put(member, buf);
buf=createTable(highest_delivered_seqno); xmit_table.put(member, buf);