From a9997c81c747b153cdca4e5390109b267ea9cd6e Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Sat, 27 Sep 2008 12:26:50 +0000 Subject: [PATCH] Added thread_pre_cancel(). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8636 --- drd/drd_thread.c | 9 +++++++++ drd/drd_thread.h | 1 + 2 files changed, 10 insertions(+) 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); -- 2.47.2