protected Response handleView(List<Address> members) { if(owner != null && !members.contains(owner.getAddress())) { Owner tmp=owner; setOwner(null); log.debug("%s: unlocked \"%s\" because owner %s left", local_addr, lock_name, tmp); } synchronized(queue) { queue.removeIf(req -> !members.contains(req.owner.getAddress())); } condition.queue.removeIf(own -> !members.contains(own.getAddress())); return processQueue(); }
protected void sendSignalResponse(Owner dest, String lock_name) { send(dest.getAddress(), new Request(Type.SIG_RET, lock_name, dest, 0)); }
protected void sendLockResponse(Type type, Owner dest, String lock_name, int lock_id) { send(dest.getAddress(), new Request(type, lock_name, dest, 0).lockId(lock_id)); }
if(!Objects.equals(owner, ret.owner)) { log.warn("%s: lock %s requested by %s is already present: %s", local_addr, lock_name, owner, ret); send(owner.getAddress(), new Request(Type.LOCK_REVOKED, lock_name, ret.owner, 0));
protected Response handleView(List<Address> members) { if(owner != null && !members.contains(owner.getAddress())) { Owner tmp=owner; setOwner(null); log.debug("%s: unlocked \"%s\" because owner %s left", local_addr, lock_name, tmp); } synchronized(queue) { queue.removeIf(req -> !members.contains(req.owner.getAddress())); } condition.queue.removeIf(own -> !members.contains(own.getAddress())); return processQueue(); }
protected void sendSignalResponse(Owner dest, String lock_name) { send(dest.getAddress(), new Request(Type.SIG_RET, lock_name, dest, 0)); }
protected void sendLockResponse(Type type, Owner dest, String lock_name, int lock_id) { send(dest.getAddress(), new Request(type, lock_name, dest, 0).lockId(lock_id)); }
if(!Objects.equals(owner, ret.owner)) { log.warn("%s: lock %s requested by %s is already present: %s", local_addr, lock_name, owner, ret); send(owner.getAddress(), new Request(Type.LOCK_REVOKED, lock_name, ret.owner, 0));