> {quote:title=daniel-laptop wrote:}{quote}
> Could you please tell me how you will use MTRAT after that? Why do you want this flag in MTRAT?
We are using ThreadSanitizer to find races in our C++ code.
It has too basic modes:
1. Conservative (pure-happens-before) which could be used by novice users because it gives very few false positives.
2. Aggressive (hybrid) which is used by the folks who can spend more time de-racing their code.
The hybrid mode has more false positives, but with dynamic annotations they can be defeated.
Ideally, we need a similar thing for Java.
Currently, MTRAT seems unusable because it has too many false reports and no way to suppress them.
These are the things we would need:
a. pure happens-before mode
b. annotations for the hybrid mode
c. support for volatile
d. support for java.util.concurrent (e.g., as I can see, CountDownLatch is not supported)
e. some way to suppress warnings that are not fixable by annotations (e.g. third_party code). Something like valgrind suppressions.
We've assembled few unittests for a Java race detector at http://code.google.com/p/data-race-test/source/browse/#svn/trunk/jtsan
MTRAT has a number of false reports there.
BTW, I am a bit puzzled by the license. It says "You are not authorized to use the Program for productive purposes".
So, I'll probably
not be able to use it for testing real software...
??