mirror of
https://github.com/isocpp/CppCoreGuidelines.git
synced 2024-03-22 13:30:58 +08:00
Fix markdown lint errors
11979:3 warning Incorrect indentation before bullet: remove 1 space list-item-bullet-indent 19412:1-19462:23 warning Missing blank line before block node no-missing-blank-lines
This commit is contained in:
parent
04fd2a5807
commit
48b40df328
|
@ -12000,12 +12000,12 @@ Unfortunately people's needs and constraints differ so dramatically that we cann
|
||||||
but we can mention:
|
but we can mention:
|
||||||
|
|
||||||
* Static enforcement tools: both [clang](http://clang.llvm.org/docs/ThreadSafetyAnalysis.html)
|
* Static enforcement tools: both [clang](http://clang.llvm.org/docs/ThreadSafetyAnalysis.html)
|
||||||
and some older versions of [GCC](https://gcc.gnu.org/wiki/ThreadSafetyAnnotation)
|
and some older versions of [GCC](https://gcc.gnu.org/wiki/ThreadSafetyAnnotation)
|
||||||
have some support for static annotation of thread safety properties.
|
have some support for static annotation of thread safety properties.
|
||||||
Consistent use of this technique turns many classes of thread-safety errors into compile-time errors.
|
Consistent use of this technique turns many classes of thread-safety errors into compile-time errors.
|
||||||
The annotations are generally local (marking a particular member variable as guarded by a particular mutex),
|
The annotations are generally local (marking a particular member variable as guarded by a particular mutex),
|
||||||
and are usually easy to learn. However, as with many static tools, it can often present false negatives;
|
and are usually easy to learn. However, as with many static tools, it can often present false negatives;
|
||||||
cases that should have been caught but were allowed.
|
cases that should have been caught but were allowed.
|
||||||
|
|
||||||
* dynamic enforcement tools: Clang's [Thread Sanitizer](http://clang.llvm.org/docs/ThreadSanitizer.html) (aka TSAN)
|
* dynamic enforcement tools: Clang's [Thread Sanitizer](http://clang.llvm.org/docs/ThreadSanitizer.html) (aka TSAN)
|
||||||
is a powerful example of dynamic tools: it changes the build and execution of your program to add bookkeeping on memory access,
|
is a powerful example of dynamic tools: it changes the build and execution of your program to add bookkeeping on memory access,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user