tree 1b2fae96360cbf7e86c1e617e8bc428a07144ed1
parent c1a60d6218af005f847da4ade4465012d439a7cd
author Willy Tarreau <w@1wt.eu> 1532583534 +0200
committer Willy Tarreau <w@1wt.eu> 1532619171 +0200
encoding latin1

MINOR: queue: use a distinct variable for the assigned server and the queue

The pendconn struct uses ->px and ->srv to designate where the element is
queued. There is something confusing regarding threads though, because we
have to lock the appropriate queue before inserting/removing elements, and
this queue may only be determined by looking at ->srv (if it's not NULL
it's the server, otherwise use the proxy). But pendconn_grab_from_px() and
pendconn_process_next_strm() both assign this ->srv field, making it
complicated to know what queue to lock before manipulating the element,
which is exactly why we have the pendconn_lock in the first place.

This commit introduces pendconn->target which is the target server that
the two aforementioned functions will set when assigning the server.
Thanks to this, the server pointer may always be relied on to determine
what queue to use.
