
❦ 10 avril 2018 08:27 +0200, Vincent Bernat <vincent@bernat.im> :
This is the responsability of the caller to apply the correct lock before using these functions. Moreover, the use of a simple boolean was still racy: two threads may check the boolean and "lock" it simultaneously.
Users of functions from src/util/virhash.c have to be checked for correctness. Lookups and iteration should hold a RO lock. Modifications should hold a RW lock.
Most important uses seem to be covered. Callers have now a greater responsability, notably the ability to execute some operations while iterating were reliably forbidden before are now accepted.
Signed-off-by: Vincent Bernat <vincent@bernat.im> Michal, is it enough or should I resend the patch with the added line? -- Make your program read from top to bottom. - The Elements of Programming Style (Kernighan & Plauger)