#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_libcassert.h"
+#include "pub_tool_inner.h"
+#if defined(ENABLE_INNER_CLIENT_REQUEST)
+#include "helgrind/helgrind.h"
+#include "drd/drd.h"
+#endif
/*------------------------------------------------------------*/
/*--- Data structures. ---*/
/*--- Operations. ---*/
/*------------------------------------------------------------*/
+void VG_(init_Threads)(void)
+{
+ ThreadId tid;
+
+ for (tid = 1; tid < VG_N_THREADS; tid++)
+ INNER_REQUEST(ANNOTATE_BENIGN_RACE_SIZED(&VG_(threads)[tid].status,
+ sizeof(VG_(threads)[tid].status), ""));
+}
+
const HChar* VG_(name_of_ThreadStatus) ( ThreadStatus status )
{
switch (status) {
/*--- Basic operations on the thread table. ---*/
/*------------------------------------------------------------*/
+/* Initialize the m_threadstate module. */
+void VG_(init_Threads)(void);
+
// Convert a ThreadStatus to a string.
const HChar* VG_(name_of_ThreadStatus) ( ThreadStatus status );