Willy Tarreau
61f799b8da
MINOR: threads: add the transitions to/from the seek state
...
Since our locks are based on progressive locks, we support the upgradable
seek lock that is compatible with readers and upgradable to a write lock.
The main purpose is to take it while seeking down a tree for modification
while other threads may seek the same tree for an input (e.g. compute the
next event date).
The newly supported operations are:
HA_RWLOCK_SKLOCK(lbl,l) pl_take_s(l) /* N --> S */
HA_RWLOCK_SKTOWR(lbl,l) pl_stow(l) /* S --> W */
HA_RWLOCK_WRTOSK(lbl,l) pl_wtos(l) /* W --> S */
HA_RWLOCK_SKTORD(lbl,l) pl_stor(l) /* S --> R */
HA_RWLOCK_WRTORD(lbl,l) pl_wtor(l) /* W --> R */
HA_RWLOCK_SKUNLOCK(lbl,l) pl_drop_s(l) /* S --> N */
HA_RWLOCK_TRYSKLOCK(lbl,l) (!pl_try_s(l)) /* N -?> S */
HA_RWLOCK_TRYRDTOSK(lbl,l) (!pl_try_rtos(l)) /* R -?> S */
Existing code paths are left unaffected so this patch doesn't affect
any running code.
2020-10-16 16:53:46 +02:00
..
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:57 +02:00
2020-06-29 14:26:05 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-10-05 12:02:14 +02:00
2020-06-11 10:18:59 +02:00
2020-08-07 14:20:07 +02:00
2020-06-11 10:18:57 +02:00
2020-06-14 08:08:13 +02:00
2020-07-05 21:32:47 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-10-09 11:27:30 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:56 +02:00
2020-09-12 13:11:27 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:57 +02:00
2020-09-16 22:08:08 +02:00
2020-06-11 10:18:59 +02:00
2020-10-07 17:17:27 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:58 +02:00
2020-09-10 09:26:50 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:57 +02:00
2020-10-15 21:47:56 +02:00
2020-10-15 21:47:56 +02:00
2020-10-05 09:05:57 +02:00
2020-06-11 10:18:56 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:57 +02:00
2020-10-05 12:02:14 +02:00
2020-10-05 12:02:14 +02:00
2020-06-11 10:18:59 +02:00
2020-06-28 10:45:35 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:57 +02:00
2020-08-26 18:33:52 +02:00
2020-10-15 21:47:56 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:56 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:58 +02:00
2020-07-15 14:08:14 +02:00
2020-06-19 11:37:11 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:57 +02:00
2020-09-18 08:05:03 +02:00
2020-06-11 10:18:56 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:57 +02:00
2020-09-12 20:56:41 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-09-01 10:55:36 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:57 +02:00
2020-06-26 11:30:02 +02:00
2020-06-11 10:18:59 +02:00
2020-09-12 20:56:41 +02:00
2020-07-22 16:43:32 +02:00
2020-06-11 10:18:56 +02:00
2020-09-10 09:31:50 +02:00
2020-06-11 10:18:56 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:56 +02:00
2020-07-10 08:50:41 +02:00
2020-10-15 21:47:56 +02:00
2020-10-15 21:47:56 +02:00
2020-07-15 17:50:12 +02:00
2020-10-08 08:53:26 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:59 +02:00
2020-06-26 10:33:38 +02:00
2020-06-11 10:18:59 +02:00
2020-06-19 16:57:51 +02:00
2020-06-11 10:18:58 +02:00
2020-10-09 20:59:58 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:56 +02:00
2020-06-30 14:29:02 +02:00
2020-06-29 10:36:37 +02:00
2020-09-12 20:56:41 +02:00
2020-06-11 10:18:59 +02:00
2020-10-15 21:47:56 +02:00
2020-10-09 11:27:30 +02:00
2020-10-09 11:27:30 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:58 +02:00
2020-10-15 21:47:56 +02:00
2020-10-09 18:29:04 +02:00
2020-10-15 21:47:04 +02:00
2020-10-09 18:29:04 +02:00
2020-06-11 10:18:58 +02:00
2020-10-02 18:10:26 +02:00
2020-10-15 21:47:56 +02:00
2020-08-14 07:53:40 +02:00
2020-08-14 07:53:40 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-10-05 12:02:14 +02:00
2020-10-15 15:19:34 +02:00
2020-06-11 10:18:59 +02:00
2020-10-15 21:47:56 +02:00
2020-09-12 20:56:41 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:58 +02:00
2020-07-15 17:50:12 +02:00
2020-07-15 17:50:12 +02:00
2020-10-15 21:47:56 +02:00
2020-10-15 21:47:56 +02:00
2020-08-28 19:26:39 +02:00
2020-10-15 21:47:56 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:58 +02:00
2020-09-16 16:28:26 +02:00
2020-09-16 16:28:26 +02:00
2020-06-11 10:18:59 +02:00
2020-06-26 11:27:28 +02:00
2020-09-16 18:10:00 +02:00
2020-07-06 19:08:03 +02:00
2020-06-11 10:18:57 +02:00
2020-10-05 12:02:14 +02:00
2020-10-05 12:02:14 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:58 +02:00
2020-07-15 14:08:14 +02:00
2020-07-30 09:31:09 +02:00
2020-06-11 10:18:58 +02:00
2020-07-01 16:35:49 +02:00
2020-07-22 14:42:52 +02:00
2020-06-11 10:18:58 +02:00
2020-06-26 11:27:28 +02:00
2020-06-11 10:18:59 +02:00
2020-10-16 16:51:49 +02:00
2020-10-16 16:53:46 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:56 +02:00
2020-06-29 10:36:37 +02:00
2020-06-29 09:57:23 +02:00
2020-10-01 17:24:14 +02:00
2020-09-16 22:08:08 +02:00
2020-06-11 10:18:59 +02:00
2020-09-10 09:35:54 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:58 +02:00
2020-06-11 10:18:59 +02:00
2020-06-11 10:18:59 +02:00
2020-07-07 16:38:51 +02:00
2020-06-11 10:18:57 +02:00
2020-06-11 10:18:59 +02:00