ClientFuture

This commit is contained in:
redkale
2024-08-16 17:23:48 +08:00
parent e1a88ef5d9
commit cf65c780c8
2 changed files with 10 additions and 2 deletions

View File

@@ -66,12 +66,12 @@ public abstract class ClientConnection<R extends ClientRequest, P extends Client
}
};
protected final AtomicBoolean pauseWriting = new AtomicBoolean();
final AtomicBoolean pauseWriting = new AtomicBoolean();
final ConcurrentLinkedQueue<ClientFuture> pauseRequests = new ConcurrentLinkedQueue<>();
// pauseWriting=true此字段才会有值; pauseWriting=false此字段值为null
protected ClientFuture currHalfWriteFuture;
ClientFuture currHalfWriteFuture;
@Nonnull
private Client.AddressConnEntry connEntry;

View File

@@ -19,6 +19,8 @@ import org.redkale.util.Traces;
*/
public class ClientFuture<R extends ClientRequest, T> extends CompletableFuture<T> implements Runnable {
public static final ClientFuture NIL = new ClientFuture() {};
@Nonnull
protected final R request;
@@ -27,6 +29,12 @@ public class ClientFuture<R extends ClientRequest, T> extends CompletableFuture<
private ScheduledFuture timeout;
private ClientFuture() {
super();
this.conn = null;
this.request = null;
}
ClientFuture(ClientConnection conn, R request) {
super();
Objects.requireNonNull(conn);