|
From: <sv...@va...> - 2008-09-27 12:26:53
|
Author: bart
Date: 2008-09-27 13:26:50 +0100 (Sat, 27 Sep 2008)
New Revision: 8636
Log:
Added thread_pre_cancel().
Modified:
trunk/drd/drd_thread.c
trunk/drd/drd_thread.h
Modified: trunk/drd/drd_thread.c
===================================================================
--- trunk/drd/drd_thread.c 2008-09-27 12:26:17 UTC (rev 8635)
+++ trunk/drd/drd_thread.c 2008-09-27 12:26:50 UTC (rev 8636)
@@ -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
Modified: trunk/drd/drd_thread.h
===================================================================
--- trunk/drd/drd_thread.h 2008-09-27 12:26:17 UTC (rev 8635)
+++ trunk/drd/drd_thread.h 2008-09-27 12:26:50 UTC (rev 8636)
@@ -103,6 +103,7 @@
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);
|