MEDIUM: stick-table: requeue the wakeup task out of the write lock

We don't need to call stktable_requeue_exp() with the table's lock
held anymore, so let's move it out. It should slightly reduce the
contention on the write lock, though it is now already quite low.
This commit is contained in:
Willy Tarreau 2022-10-12 10:04:01 +00:00
parent dbae89e09c
commit cbdb528a76

View File

@ -566,10 +566,10 @@ struct stksess *stktable_get_entry(struct stktable *table, struct stktable_key *
ts = ts2;
}
stktable_requeue_exp(table, ts);
HA_ATOMIC_INC(&ts->ref_cnt);
HA_RWLOCK_WRUNLOCK(STK_TABLE_LOCK, &table->lock);
stktable_requeue_exp(table, ts);
return ts;
}
@ -604,8 +604,9 @@ struct stksess *stktable_set_entry(struct stktable *table, struct stksess *nts)
/* now we're write-locked */
__stktable_store(table, ts);
stktable_requeue_exp(table, ts);
HA_RWLOCK_WRUNLOCK(STK_TABLE_LOCK, &table->lock);
stktable_requeue_exp(table, ts);
return ts;
}