MINOR: check: remember when we migrate a check
authorWilly Tarreau <w@1wt.eu>
Wed, 23 Aug 2023 09:58:24 +0000 (11:58 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 1 Sep 2023 06:26:06 +0000 (08:26 +0200)
commite03d05c6ce7a1c6179eb4fce79c11f9b14cda016
treec17b09305d018de997a8ad5ca6d4833df58fc968
parent3544c9f8a0a4121ce6d6ded1d6a8fbf880f7eb60
MINOR: check: remember when we migrate a check

The goal here is to explicitly mark that a check was migrated so that
we don't do it again. This will allow us to perform other actions on
the target thread while still knowing that we don't want to be migrated
again. The new READY bit combine with SLEEPING to form 4 possible states:

 SLP  RDY   State      Description
  0    0    -          (reserved)
  0    1    RUNNING    Check is bound to current thread and running
  1    0    SLEEPING   Check is sleeping, not bound to a thread
  1    1    MIGRATING  Check is migrating to another thread

Thus we set READY upon migration, and check for it before migrating, this
is sufficient to prevent a second migration. To make things a bit clearer,
the SLEEPING bit was switched with FASTINTER so that SLEEPING and READY are
adjacent.
include/haproxy/check-t.h
src/check.c