From: Bart Van Assche Date: Sat, 27 Sep 2008 12:26:50 +0000 (+0000) Subject: Added thread_pre_cancel(). X-Git-Tag: svn/VALGRIND_3_4_0~249 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a9997c81c747b153cdca4e5390109b267ea9cd6e;p=thirdparty%2Fvalgrind.git Added thread_pre_cancel(). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8636 --- diff --git a/drd/drd_thread.c b/drd/drd_thread.c index b1d443c589..82b4d86b6f 100644 --- a/drd/drd_thread.c +++ b/drd/drd_thread.c @@ -321,6 +321,15 @@ void thread_finished(const DrdThreadId tid) } } +void thread_pre_cancel(const DrdThreadId tid) +{ + tl_assert(0 <= (int)tid && tid < DRD_N_THREADS + && tid != DRD_INVALID_THREADID); + tl_assert(s_threadinfo[tid].pt_threadid != INVALID_POSIX_THREADID); + + s_threadinfo[tid].synchr_nesting = 0; +} + void thread_set_pthreadid(const DrdThreadId tid, const PThreadId ptid) { tl_assert(0 <= (int)tid && tid < DRD_N_THREADS diff --git a/drd/drd_thread.h b/drd/drd_thread.h index c317432161..895502f833 100644 --- a/drd/drd_thread.h +++ b/drd/drd_thread.h @@ -103,6 +103,7 @@ DrdThreadId thread_pre_create(const DrdThreadId creator, DrdThreadId thread_post_create(const ThreadId vg_created); void thread_delete(const DrdThreadId tid); void thread_finished(const DrdThreadId tid); +void thread_pre_cancel(const DrdThreadId tid); void thread_set_stack_startup(const DrdThreadId tid, const Addr stack_startup); Addr thread_get_stack_min(const DrdThreadId tid); Addr thread_get_stack_min_min(const DrdThreadId tid);