#include <lttng/ust-tracer.h>
#include <ust-context-provider.h>
#include <lttng/urcu/pointer.h>
+#include <lttng/urcu/urcu-ust.h>
#include <usterr-signal-safe.h>
#include <ust-helper.h>
#include <stddef.h>
*nf = *f;
lttng_context_update(new_ctx);
lttng_ust_rcu_assign_pointer(*ctx_p, new_ctx);
- lttng_ust_synchronize_trace();
+ lttng_ust_urcu_synchronize_rcu();
if (old_ctx) {
free(old_ctx->fields);
free(old_ctx);
}
new_ctx->fields = new_fields;
lttng_ust_rcu_assign_pointer(*_ctx, new_ctx);
- lttng_ust_synchronize_trace();
+ lttng_ust_urcu_synchronize_rcu();
free(ctx->fields);
free(ctx);
return 0;
cds_list_for_each_entry(event, &session->events_head, node) {
_lttng_event_unregister(event);
}
- lttng_ust_synchronize_trace(); /* Wait for in-flight events to complete */
+ lttng_ust_urcu_synchronize_rcu(); /* Wait for in-flight events to complete */
__tracepoint_probe_prune_release_queue();
cds_list_for_each_entry_safe(event_enabler, event_tmpenabler,
&session->enablers_head, node)
&event_notifier_group->event_notifiers_head, node)
_lttng_event_notifier_unregister(notifier);
- lttng_ust_synchronize_trace();
+ lttng_ust_urcu_synchronize_rcu();
cds_list_for_each_entry_safe(notifier_enabler, tmpnotifier_enabler,
&event_notifier_group->enablers_head, node)
_lttng_event_notifier_unregister);
/* Wait for grace period. */
- lttng_ust_synchronize_trace();
+ lttng_ust_urcu_synchronize_rcu();
/* Prune the unregistration queue. */
__tracepoint_probe_prune_release_queue();
case LTTNG_UST_TRACEPOINT_FIELD_LIST:
return lttng_abi_tracepoint_field_list(owner);
case LTTNG_UST_WAIT_QUIESCENT:
- lttng_ust_synchronize_trace();
+ lttng_ust_urcu_synchronize_rcu();
return 0;
case LTTNG_UST_EVENT_NOTIFIER_GROUP_CREATE:
return lttng_abi_event_notifier_send_fd(owner,
void (*func)(void), void *data);
extern void __tracepoint_probe_prune_release_queue(void);
-void lttng_ust_synchronize_trace(void);
-
-/*
- * call after disconnection of last probe implemented within a
- * shared object before unmapping the library that contains the probe.
- */
-static inline void tracepoint_synchronize_unregister(void)
-{
- lttng_ust_synchronize_trace();
-}
-
extern void init_tracepoint(void);
extern void exit_tracepoint(void);
if (old) {
struct tp_probes *tp_probes = caa_container_of(old,
struct tp_probes, probes[0]);
- lttng_ust_synchronize_trace();
+ lttng_ust_urcu_synchronize_rcu();
free(tp_probes);
}
}
release_queue_need_update = 0;
/* Wait for grace period between all sync_callsites and free. */
- lttng_ust_synchronize_trace();
+ lttng_ust_urcu_synchronize_rcu();
cds_list_for_each_entry_safe(pos, next, &release_probes, u.list) {
cds_list_del(&pos->u.list);
tracepoint_update_probes();
/* Wait for grace period between update_probes and free. */
- lttng_ust_synchronize_trace();
+ lttng_ust_urcu_synchronize_rcu();
cds_list_for_each_entry_safe(pos, next, &release_probes, u.list) {
cds_list_del(&pos->u.list);
free(pos);
{
return uatomic_read(&tracepoint_destructors_state);
}
-
-void lttng_ust_synchronize_trace(void)
-{
- lttng_ust_urcu_synchronize_rcu();
-}