From: Bart Van Assche Date: Thu, 23 Apr 2009 17:13:28 +0000 (+0000) Subject: Merged r9590 from trunk. X-Git-Tag: svn/VALGRIND_3_4_1~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef85420c67bb729363950e9ca1178481c2aa0552;p=thirdparty%2Fvalgrind.git Merged r9590 from trunk. git-svn-id: svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_4_BRANCH@9591 --- diff --git a/drd/drd_thread.c b/drd/drd_thread.c index d852340bb1..4fd388dc96 100644 --- a/drd/drd_thread.c +++ b/drd/drd_thread.c @@ -331,11 +331,19 @@ void thread_pre_cancel(const DrdThreadId tid) s_threadinfo[tid].synchr_nesting = 0; } +/** + * Store the POSIX thread ID for the specified thread. + * + * @note This function can be called two times for the same thread -- see also + * the comment block preceding the pthread_create() wrapper in + * drd_pthread_intercepts.c. + */ void thread_set_pthreadid(const DrdThreadId tid, const PThreadId ptid) { tl_assert(0 <= (int)tid && tid < DRD_N_THREADS && tid != DRD_INVALID_THREADID); - tl_assert(s_threadinfo[tid].pt_threadid == INVALID_POSIX_THREADID); + tl_assert(s_threadinfo[tid].pt_threadid == INVALID_POSIX_THREADID + || s_threadinfo[tid].pt_threadid == ptid); tl_assert(ptid != INVALID_POSIX_THREADID); s_threadinfo[tid].posix_thread_exists = True; s_threadinfo[tid].pt_threadid = ptid;