DEF(track_post_thread_create, ThreadId, ThreadId)
DEF(track_post_thread_join, ThreadId, ThreadId)
-DEF(track_pre_mutex_lock, ThreadId, Addr)
-DEF(track_post_mutex_lock, ThreadId, Addr)
-DEF(track_post_mutex_unlock, ThreadId, Addr)
-
DEF(track_pre_deliver_signal, ThreadId, Int sigNo, Bool)
DEF(track_post_deliver_signal, ThreadId, Int sigNo)
void (*track_post_thread_create)(ThreadId, ThreadId);
void (*track_post_thread_join) (ThreadId, ThreadId);
- void (*track_pre_mutex_lock) (ThreadId, Addr);
- void (*track_post_mutex_lock) (ThreadId, Addr);
- void (*track_post_mutex_unlock)(ThreadId, Addr);
-
void (*track_pre_deliver_signal) (ThreadId, Int sigNo, Bool);
void (*track_post_deliver_signal)(ThreadId, Int sigNo);
VG_(track_post_thread_create) (& hg_thread_create);
VG_(track_post_thread_join) (& hg_thread_join);
+ /* The core doesn't provide these events any more */
+ /*
VG_(track_pre_mutex_lock) (& hg_pre_mutex_lock);
VG_(track_post_mutex_lock) (& hg_post_mutex_lock);
VG_(track_post_mutex_unlock) (& hg_post_mutex_unlock);
+ */
for (i = 0; i < LOCKSET_HASH_SZ; i++)
lockset_hash[i] = NULL;
void VG_(track_post_thread_join) (void(*f)(ThreadId joiner, ThreadId joinee));
-/* Mutex events (not exhaustive)
- "void *mutex" is really a pthread_mutex *
-
- Called before a thread can block while waiting for a mutex (called
- regardless of whether the thread will block or not). */
-void VG_(track_pre_mutex_lock)(void(*f)(ThreadId tid, Addr mutex));
-
-/* Called once the thread actually holds the mutex (always paired with
- pre_mutex_lock). */
-void VG_(track_post_mutex_lock)(void(*f)(ThreadId tid, Addr mutex));
-
-/* Called after a thread has released a mutex (no need for a corresponding
- pre_mutex_unlock, because unlocking can't block). */
-void VG_(track_post_mutex_unlock)(void(*f)(ThreadId tid, Addr mutex));
-
/* Signal events (not exhaustive)
... pre_send_signal, post_send_signal ...