bytecode: initialize all contexts on event notifier group creation
[lttng-ust.git] / liblttng-ust / lttng-events.c
index 716a764e85ac0bcda00e6470e0fd55ffd9c3e150..ac8b2b70f1e097f151d35ae7d7fe7a06914a52d8 100644 (file)
 
 #include "tracepoint-internal.h"
 #include "string-utils.h"
+#include "lttng-bytecode.h"
 #include "lttng-tracer.h"
 #include "lttng-tracer-core.h"
 #include "lttng-ust-statedump.h"
+#include "context-internal.h"
 #include "ust-events-internal.h"
 #include "wait.h"
 #include "../libringbuffer/shm.h"
@@ -153,7 +155,7 @@ struct lttng_session *lttng_session_create(void)
        session = zmalloc(sizeof(struct lttng_session));
        if (!session)
                return NULL;
-       if (lttng_session_context_init(&session->ctx)) {
+       if (lttng_context_init_all(&session->ctx)) {
                free(session);
                return NULL;
        }
@@ -178,6 +180,12 @@ struct lttng_event_notifier_group *lttng_event_notifier_group_create(void)
        if (!event_notifier_group)
                return NULL;
 
+       /* Add all contexts. */
+       if (lttng_context_init_all(&event_notifier_group->ctx)) {
+               free(event_notifier_group);
+               return NULL;
+       }
+
        CDS_INIT_LIST_HEAD(&event_notifier_group->enablers_head);
        CDS_INIT_LIST_HEAD(&event_notifier_group->event_notifiers_head);
        for (i = 0; i < LTTNG_UST_EVENT_NOTIFIER_HT_SIZE; i++)
@@ -1222,7 +1230,7 @@ int lttng_event_enabler_ref_events(struct lttng_event_enabler *event_enabler)
                lttng_enabler_link_bytecode(event->desc,
                        &session->ctx,
                        &event->filter_bytecode_runtime_head,
-                       lttng_event_enabler_as_enabler(event_enabler));
+                       &lttng_event_enabler_as_enabler(event_enabler)->filter_bytecode_head);
 
                /* TODO: merge event context. */
        }
@@ -1635,7 +1643,7 @@ void lttng_session_sync_event_enablers(struct lttng_session *session)
                /* Enable filters */
                cds_list_for_each_entry(runtime,
                                &event->filter_bytecode_runtime_head, node) {
-                       lttng_filter_sync_state(runtime);
+                       lttng_bytecode_filter_sync_state(runtime);
                }
        }
        __tracepoint_probe_prune_release_queue();
@@ -1754,8 +1762,9 @@ int lttng_event_notifier_enabler_ref_event_notifiers(
                 * Link filter bytecodes if not linked yet.
                 */
                lttng_enabler_link_bytecode(event_notifier->desc,
-                       &event_notifier_group->ctx, &event_notifier->filter_bytecode_runtime_head,
-                       lttng_event_notifier_enabler_as_enabler(event_notifier_enabler));
+                       &event_notifier_group->ctx,
+                       &event_notifier->filter_bytecode_runtime_head,
+                       &lttng_event_notifier_enabler_as_enabler(event_notifier_enabler)->filter_bytecode_head);
        }
 end:
        return 0;
@@ -1816,7 +1825,7 @@ void lttng_event_notifier_group_sync_enablers(struct lttng_event_notifier_group
                /* Enable filters */
                cds_list_for_each_entry(runtime,
                                &event_notifier->filter_bytecode_runtime_head, node) {
-                       lttng_filter_sync_state(runtime);
+                       lttng_bytecode_filter_sync_state(runtime);
                }
        }
        __tracepoint_probe_prune_release_queue();
This page took 0.02544 seconds and 4 git commands to generate.