Rework r12363
authorbart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Thu, 2 Feb 2012 10:58:01 +0000 (10:58 +0000)
committerbart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Thu, 2 Feb 2012 10:58:01 +0000 (10:58 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12365 a5019735-40e9-0310-863c-91ae7b9d1cf9

drd/drd_main.c

index 3ac34df700a51766b548dc5fc78106fe1c2c668b..7c7ef9fc363a5d3fe772706c66f6d5a9103fd47c 100644 (file)
@@ -639,16 +639,15 @@ static void drd_thread_finished(ThreadId vg_tid)
 {
    DrdThreadId drd_tid;
 
-#if 0
    /*
-    * The assert statement below doesn't hold if this function is invoked
-    * because thread creation failed. See e.g.
+    * Ignore if invoked because thread creation failed. See e.g.
     * coregrind/m_syswrap/syswrap-amd64-linux.c
     */
-   tl_assert(VG_(get_running_tid)() == vg_tid);
-#endif
+   if (VG_(get_running_tid)() != vg_tid)
+      return;
 
    drd_tid = DRD_(VgThreadIdToDrdThreadId)(vg_tid);
+   tl_assert(drd_tid != DRD_INVALID_THREADID);
    if (DRD_(thread_get_trace_fork_join)())
    {
       DRD_(trace_msg)("drd_thread_finished tid = %d%s", drd_tid,