diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2023-06-02 06:10:34 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2023-06-02 06:10:34 +0200 |
commit | 048bcc1604a7e8aca666e219c0fdc3cd5517029e (patch) | |
tree | c710fd799f1089cfaf06cf1a520c072c0436dfd1 /libbuild2/target.hxx | |
parent | 2dd1f9fa5a7427096b74aa85258ec2feeb93c104 (diff) |
Fix data race in library metadata protocol logic
Diffstat (limited to 'libbuild2/target.hxx')
-rw-r--r-- | libbuild2/target.hxx | 6 |
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; |