ReEnact: using thread-level speculation mechanisms to debug data races in multithreaded codes | IEEE Conference Publication | IEEE Xplore