package io.termd.core.ssh.netty; import java.util.function.Consumer; /** * @author <a href="mailto:julien@julienviet.com">Julien Viet</a> */ public class AsyncAuth extends RuntimeException { private volatile Consumer<Boolean> listener; private volatile Boolean authed; public void setAuthed(boolean authed) { Consumer<Boolean> listener; synchronized (this) { if (this.authed != null) { return; } this.authed = authed; listener = this.listener; } if (listener != null) { listener.accept(authed); } } public void setListener(Consumer<Boolean> listener) { Boolean result; synchronized (this) { this.listener = listener; result = this.authed; } if (result != null) { listener.accept(result); } } }