mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-12-05 09:41:00 +01:00
WIP/MEDIUM: stick-tables: Don't get update lock if session is not in the update tree
This commit is contained in:
parent
e9162ee569
commit
04012ae816
@ -376,7 +376,7 @@ int stktable_trash_oldest(struct stktable *t)
|
|||||||
* with that lock held, will grab a ref_cnt before releasing the
|
* with that lock held, will grab a ref_cnt before releasing the
|
||||||
* lock. So we must take this lock as well and check the ref_cnt.
|
* lock. So we must take this lock as well and check the ref_cnt.
|
||||||
*/
|
*/
|
||||||
if (!updt_locked) {
|
if (!updt_locked && ts->upd.node.leaf_p) {
|
||||||
updt_locked = 1;
|
updt_locked = 1;
|
||||||
HA_RWLOCK_WRLOCK(STK_TABLE_UPDT_LOCK, &t->updt_lock);
|
HA_RWLOCK_WRLOCK(STK_TABLE_UPDT_LOCK, &t->updt_lock);
|
||||||
}
|
}
|
||||||
@ -1063,7 +1063,7 @@ struct task *process_tables_expire(struct task *task, void *context, unsigned in
|
|||||||
* with that lock held, will grab a ref_cnt before releasing the
|
* with that lock held, will grab a ref_cnt before releasing the
|
||||||
* lock. So we must take this lock as well and check the ref_cnt.
|
* lock. So we must take this lock as well and check the ref_cnt.
|
||||||
*/
|
*/
|
||||||
if (!updt_locked) {
|
if (!updt_locked && ts->upd.node.leaf_p) {
|
||||||
updt_locked = 1;
|
updt_locked = 1;
|
||||||
HA_RWLOCK_WRLOCK(STK_TABLE_UPDT_LOCK, &t->updt_lock);
|
HA_RWLOCK_WRLOCK(STK_TABLE_UPDT_LOCK, &t->updt_lock);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user