MINOR: queue: store a pointer to the queue into the pendconn

By following the queue pointer in the pendconn it will now be possible
to always retrieve the elements (index, srv, px, etc).
This commit is contained in:
Willy Tarreau 2021-06-23 16:33:52 +02:00
parent cdc83e0192
commit 8429097c61
2 changed files with 3 additions and 0 deletions

View File

@ -28,11 +28,13 @@
struct proxy;
struct server;
struct stream;
struct queue;
struct pendconn {
int strm_flags; /* stream flags */
unsigned int queue_idx; /* value of proxy/server queue_idx at time of enqueue */
struct stream *strm;
struct queue *queue; /* the queue the entry is queued into */
struct proxy *px;
struct server *srv; /* the server we are waiting for, may be NULL if don't care */
struct server *target; /* the server that was assigned, = srv except if srv==NULL */

View File

@ -434,6 +434,7 @@ struct pendconn *pendconn_add(struct stream *strm)
max_ptr = &px->be_counters.nbpend_max;
}
p->queue = q;
p->queue_idx = _HA_ATOMIC_LOAD(&q->idx) - 1; // for logging only
new_max = _HA_ATOMIC_ADD_FETCH(&q->length, 1);
old_max = _HA_ATOMIC_LOAD(max_ptr);