mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 05:41:26 +02:00
[MINOR] add a new back-reference type : struct bref
This type will be used to maintain back-references to items which are subject to move between accesses. Typical usage includes session removal during a listing.
This commit is contained in:
parent
0a46489228
commit
bc04ce7cd9
@ -19,6 +19,20 @@ struct list {
|
|||||||
struct list *p; /* prev */
|
struct list *p; /* prev */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* a back-ref is a pointer to a target list entry. It is used to detect when an
|
||||||
|
* element being deleted is currently being tracked by another user. The best
|
||||||
|
* example is a user dumping the session table. The table does not fit in the
|
||||||
|
* output buffer so we have to set a mark on a session and go on later. But if
|
||||||
|
* that marked session gets deleted, we don't want the user's pointer to go in
|
||||||
|
* the wild. So we can simply link this user's request to the list of this
|
||||||
|
* session's users, and put a pointer to the list element in ref, that will be
|
||||||
|
* used as the mark for next iteration.
|
||||||
|
*/
|
||||||
|
struct bref {
|
||||||
|
struct list users;
|
||||||
|
struct list *ref; /* pointer to the target's list entry */
|
||||||
|
};
|
||||||
|
|
||||||
/* First undefine some macros which happen to also be defined on OpenBSD,
|
/* First undefine some macros which happen to also be defined on OpenBSD,
|
||||||
* in sys/queue.h, used by sys/event.h
|
* in sys/queue.h, used by sys/event.h
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user