Added thread_pre_cancel().

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8636 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/drd/drd_thread.c b/drd/drd_thread.c
index b1d443c..82b4d86 100644
--- a/drd/drd_thread.c
+++ b/drd/drd_thread.c
@@ -321,6 +321,15 @@
   }
 }
 
+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