odyaka341 / thread-sanitizer

Automatically exported from code.google.com/p/thread-sanitizer
0 stars 0 forks source link

Tasking support #37

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Most modern concurrent software is built around the concept of "tasks" rather 
than raw threads. Tsan could understand the concept of tasks natively. This 
would allow to (1) print better reports (task creation stacks instead of thread 
creation stacks) and (2) eliminate false negatives due to shared worker threads 
(a task is synchronized with something just because a previous task on the same 
worked thread was synchronized with that).

The proposed interface:
https://codereview.appspot.com/6904068/diff/6001/rtl/tsan_interface_task.h

Original issue reported on code.google.com by dvyu...@google.com on 14 Nov 2013 at 7:14

GoogleCodeExporter commented 9 years ago
see also https://code.google.com/p/address-sanitizer/issues/detail?id=142
We need to have it for all sanitizers

Original comment by konstant...@gmail.com on 14 Nov 2013 at 7:58

GoogleCodeExporter commented 9 years ago
Seconding the feature request. Tasks would provide more informative messages 
about data races between tasks executed in a thread pool.

Currently I can only see the place where the racy memory block was allocated, 
and the places in the task that do conflicting accesses. However, tasks of the 
same type touching the same memory block can be created in different places of 
the program. And finding the place where the conflicting tasks are being added 
requires some kind of code bisection or educated guessing and checking.

Original comment by yegor.de...@gmail.com on 28 May 2014 at 8:54