Fix: racy notifier captures update vs traversal
[lttng-modules.git] / include / lttng / events.h
index 51892335010afea17f1056a7a4a010a19e75f672..5d439bcbbcc0a1dc8321819032edb860565c867c 100644 (file)
@@ -353,6 +353,10 @@ struct lttng_event {
        int has_enablers_without_bytecode;
 };
 
+struct lttng_kernel_notifier_ctx {
+       int eval_capture;
+};
+
 // FIXME: Really similar to lttng_event above. Could those be merged ?
 struct lttng_event_notifier {
        enum lttng_event_type evtype;   /* First field. */
@@ -385,10 +389,12 @@ struct lttng_event_notifier {
        size_t num_captures;
        struct list_head capture_bytecode_runtime_head;
        int has_enablers_without_bytecode;
+       int eval_capture;               /* Should evaluate capture */
 
        void (*send_notification)(struct lttng_event_notifier *event_notifier,
                        struct lttng_probe_ctx *lttng_probe_ctx,
-                       const char *interpreter_stack_data);
+                       const char *interpreter_stack_data,
+                       struct lttng_kernel_notifier_ctx *notif_ctx);
        struct lttng_event_notifier_group *group; /* Weak ref */
 };
 
@@ -986,6 +992,8 @@ void lttng_enabler_link_bytecode(const struct lttng_event_desc *event_desc,
                struct lttng_ctx *ctx,
                struct list_head *instance_bytecode_runtime_head,
                struct list_head *enabler_bytecode_runtime_head);
+void lttng_free_event_filter_runtime(struct lttng_event *event);
+void lttng_free_event_notifier_filter_runtime(struct lttng_event_notifier *event_notifier);
 
 int lttng_probes_init(void);
 
This page took 0.024138 seconds and 4 git commands to generate.