Report an error message instead of triggering an assertion failure when a non-existing thread ID is passed to pthread_join() or pthread_cancel().

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10674 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/drd/drd_error.h b/drd/drd_error.h
index c9d89fd..cc3fcd0 100644
--- a/drd/drd_error.h
+++ b/drd/drd_error.h
@@ -59,6 +59,8 @@
    HoldtimeErr    = 10,
 #define STR_GenericErr   "GenericErr"
    GenericErr     = 11,
+#define STR_InvalidThreadId "InvalidThreadId"
+   InvalidThreadId = 12,
 } DrdErrorKind;
 
 /* The classification of a faulting address. */
@@ -161,6 +163,10 @@
    DrdThreadId tid;
 } GenericErrInfo;
 
+typedef struct {
+   DrdThreadId tid;
+   ULong       ptid;
+} InvalidThreadIdInfo;
 
 void DRD_(set_show_conflicting_segments)(const Bool scs);
 void DRD_(register_error_handlers)(void);