UTRACE_BARRIER(9) utrace core API UTRACE_BARRIER(9)NAMEutrace_barrier - synchronize with simultaneous tracing callbacks
SYNOPSIS
int utrace_barrier(struct task_struct * target,
struct utrace_engine * engine);
ARGUMENTS
target
thread to affect
engine
engine to affect (can be detached)
DESCRIPTION
This blocks while target might be in the midst of making a callback to
engine. It can be interrupted by signals and will return -ERESTARTSYS.
A return value of zero means no callback from target to engine was in
progress. Any effect of its return value (such as UTRACE_STOP) has
already been applied to engine.
It´s not necessary to keep the target pointer alive for this call. It´s
only necessary to hold a ref on engine. This will return safely even if
target has been reaped and has no task refs.
A successful return from utrace_barrier guarantees its ordering with
respect to utrace_set_events and utrace_control calls. If target was
not properly stopped, event callbacks just disabled might still be in
progress; utrace_barrier waits until there is no chance an unwanted
callback can be in progress.
Kernel Hackers Manual 2.6. November 2013 UTRACE_BARRIER(9)