From: Bart Van Assche Date: Sat, 27 Sep 2008 12:36:48 +0000 (+0000) Subject: Added client requests related to pthread_cancel(). X-Git-Tag: svn/VALGRIND_3_4_0~246 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=57b4e9c50e9641e8349733340a3993f80499503b;p=thirdparty%2Fvalgrind.git Added client requests related to pthread_cancel(). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8639 --- diff --git a/drd/drd_clientreq.c b/drd/drd_clientreq.c index 6078deaa85..29ce30bbba 100644 --- a/drd/drd_clientreq.c +++ b/drd/drd_clientreq.c @@ -210,6 +210,16 @@ static Bool drd_handle_client_request(ThreadId vg_tid, UWord* arg, UWord* ret) PtThreadIdToDrdThreadId(arg[1])); break; + case VG_USERREQ__PRE_THREAD_CANCEL: + tl_assert(arg[1]); + drd_pre_thread_cancel(drd_tid, PtThreadIdToDrdThreadId(arg[1])); + break; + + case VG_USERREQ__POST_THREAD_CANCEL: + tl_assert(arg[1]); + drd_post_thread_cancel(drd_tid, PtThreadIdToDrdThreadId(arg[1]), arg[2]); + break; + case VG_USERREQ__PRE_MUTEX_INIT: if (thread_enter_synchr(drd_tid) == 0) drd_pre_mutex_init(arg[1], arg[2]); diff --git a/drd/drd_clientreq.h b/drd/drd_clientreq.h index b80b8a89ad..3d06e71598 100644 --- a/drd/drd_clientreq.h +++ b/drd/drd_clientreq.h @@ -59,6 +59,13 @@ enum { VG_USERREQ__POST_THREAD_JOIN, /* args: pthread_t (joinee) */ + /* To notify drd before a pthread_cancel call. */ + VG_USERREQ__PRE_THREAD_CANCEL, + /* args: pthread_t */ + /* To notify drd after a pthread_cancel call. */ + VG_USERREQ__POST_THREAD_CANCEL, + /* args: pthread_t, Bool */ + /* to notify the drd tool of a pthread_mutex_init call. */ VG_USERREQ__PRE_MUTEX_INIT, /* args: Addr, MutexT */