Conversation
Greptile SummaryThis one-line fix adds a Confidence Score: 5/5Safe to merge — the fix is minimal, correct, and consistent with the existing pattern in The single-line guard follows the identical pattern already present in No files require special attention. Important Files Changed
Sequence DiagramsequenceDiagram
participant Caller as Caller Task
participant Session as AppendSession
participant Queue as _queue / _unacked
participant Server as Server
Caller->>Session: submit(inp)
Session->>Queue: append _UnackedBatch(ack_fut, bytes)
Session-->>Caller: BatchSubmitTicket(ack_fut)
Caller->>Caller: await ticket (awaits ack_fut)
Note over Caller: Task cancelled externally
Caller->>+Caller: asyncio cancels ack_fut
Note over Caller: ack_fut.done() → True (cancelled)
Server-->>Session: AppendAck arrives
Session->>Session: _resolve_next(ack)
Session->>Queue: popleft() → _UnackedBatch
Session->>Session: _permits.release(bytes)
alt ack_fut already done (cancelled)
Session->>Session: skip set_result ✓
else ack_fut still pending
Session->>Session: set_result(ack)
end
Reviews (1): Last reviewed commit: "initial commit" | Re-trigger Greptile |
No description provided.