aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/target.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2023-06-02 06:10:34 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2023-06-02 06:10:34 +0200
commit048bcc1604a7e8aca666e219c0fdc3cd5517029e (patch)
treec710fd799f1089cfaf06cf1a520c072c0436dfd1 /libbuild2/target.hxx
parent2dd1f9fa5a7427096b74aa85258ec2feeb93c104 (diff)
Fix data race in library metadata protocol logic
Diffstat (limited to 'libbuild2/target.hxx')
-rw-r--r--libbuild2/target.hxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/libbuild2/target.hxx b/libbuild2/target.hxx
index d4ad780..69714fc 100644
--- a/libbuild2/target.hxx
+++ b/libbuild2/target.hxx
@@ -940,7 +940,11 @@ namespace build2
// (e.g., in match data) with a few well-known execeptions (see
// group_recipe and inner_recipe).
//
- // Note that the recipe may modify this list. @@ TMP TSAN issue
+ // Note that the recipe may modify this list during execute. Normally this
+ // would be just blanking out of ad hoc prerequisites, in which case check
+ // for ad hoc first and for not NULL second if accessing prerequisites of
+ // targets that you did not execute (see the library metadata protocol in
+ // cc for an example).
//
mutable action_state<build2::prerequisite_targets> prerequisite_targets;