return 0;
}
+/*
+ * Ensure that a state-dump will be performed for this session at the end
+ * of the current handle_message().
+ */
+int lttng_session_statedump(struct lttng_session *session)
+{
+ session->statedump_pending = 1;
+ lttng_ust_sockinfo_session_enabled(session->owner);
+ return 0;
+}
int lttng_session_enable(struct lttng_session *session)
{
CMM_ACCESS_ONCE(session->active) = 1;
CMM_ACCESS_ONCE(session->been_active) = 1;
- session->statedump_pending = 1;
- lttng_ust_sockinfo_session_enabled(session->owner);
+ ret = lttng_session_statedump(session);
+ if (ret)
+ return ret;
end:
return ret;
}
}
int lttng_attach_context(struct lttng_ust_context *context_param,
+ union ust_args *uargs,
struct lttng_ctx **ctx, struct lttng_session *session)
{
/*
return lttng_add_ip_to_ctx(ctx);
case LTTNG_UST_CONTEXT_CPU_ID:
return lttng_add_cpu_id_to_ctx(ctx);
+ case LTTNG_UST_CONTEXT_APP_CONTEXT:
+ return lttng_ust_add_app_context_to_ctx_rcu(uargs->app_context.ctxname,
+ ctx);
default:
return -EINVAL;
}