#include <time.h>
#include <stdbool.h>
#include <unistd.h>
+#include <dlfcn.h>
#include <lttng/ust-endian.h>
-#include <urcu-bp.h>
#include <urcu/arch.h>
#include <urcu/compiler.h>
#include <urcu/hlist.h>
}
}
-void synchronize_trace(void)
-{
- synchronize_rcu();
-}
-
struct lttng_session *lttng_session_create(void)
{
struct lttng_session *session;
cds_list_for_each_entry(event, &session->events_head, node) {
_lttng_event_unregister(event);
}
- synchronize_trace(); /* Wait for in-flight events to complete */
+ lttng_ust_synchronize_trace(); /* 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);
- synchronize_trace();
+ lttng_ust_synchronize_trace();
cds_list_for_each_entry_safe(notifier_enabler, tmpnotifier_enabler,
&event_notifier_group->enablers_head, node)
static
int lttng_event_notifier_create(const struct lttng_event_desc *desc,
- uint64_t token,
+ uint64_t token, uint64_t error_counter_index,
struct lttng_event_notifier_group *event_notifier_group)
{
struct lttng_event_notifier *event_notifier;
event_notifier->group = event_notifier_group;
event_notifier->user_token = token;
+ event_notifier->error_counter_index = error_counter_index;
/* Event notifier will be enabled by enabler sync. */
event_notifier->enabled = 0;
CDS_INIT_LIST_HEAD(&event_notifier->capture_bytecode_runtime_head);
CDS_INIT_LIST_HEAD(&event_notifier->enablers_ref_head);
event_notifier->desc = desc;
+ event_notifier->notification_send = lttng_event_notifier_notification_send;
cds_list_add(&event_notifier->node,
&event_notifier_group->event_notifiers_head);
_lttng_event_notifier_unregister);
/* Wait for grace period. */
- synchronize_trace();
+ lttng_ust_synchronize_trace();
/* Prune the unregistration queue. */
__tracepoint_probe_prune_release_queue();
CDS_INIT_LIST_HEAD(&event_notifier_enabler->base.excluder_head);
event_notifier_enabler->user_token = event_notifier_param->event.token;
+ event_notifier_enabler->error_counter_index = event_notifier_param->error_counter_index;
event_notifier_enabler->num_captures = 0;
memcpy(&event_notifier_enabler->base.event_param.name,
*/
ret = lttng_event_notifier_create(desc,
event_notifier_enabler->user_token,
+ event_notifier_enabler->error_counter_index,
event_notifier_group);
if (ret) {
DBG("Unable to create event_notifier %s, error %d\n",