goto error_consumer;
}
- /*
- * The tmp_consumer stays NULL until a set_consumer_uri command is
- * executed. At this point, the consumer should be nullify until an
- * enable_consumer command. This assignment is symbolic since we've zmalloc
- * the struct.
- */
- lus->tmp_consumer = NULL;
-
DBG2("UST trace session create successful");
return lus;
*
* Return pointer to structure or NULL.
*/
-struct ltt_ust_channel *trace_ust_create_channel(struct lttng_channel *chan)
+struct ltt_ust_channel *trace_ust_create_channel(struct lttng_channel *chan,
+ enum lttng_domain_type domain)
{
struct ltt_ust_channel *luc;
goto error;
}
+ luc->domain = domain;
+
/* Copy UST channel attributes */
luc->attr.overwrite = chan->attr.overwrite;
luc->attr.subbuf_size = chan->attr.subbuf_size;
struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev,
char *filter_expression,
struct lttng_filter_bytecode *filter,
- struct lttng_event_exclusion *exclusion)
+ struct lttng_event_exclusion *exclusion,
+ bool internal_event)
{
struct ltt_ust_event *lue;
goto error;
}
+ lue->internal = internal_event;
+
switch (ev->type) {
case LTTNG_EVENT_PROBE:
lue->attr.instrumentation = LTTNG_UST_PROBE;
/* Same layout. */
lue->filter_expression = filter_expression;
- lue->filter = (struct lttng_ust_filter_bytecode *) filter;
- lue->exclusion = (struct lttng_event_exclusion *) exclusion;
+ lue->filter = filter;
+ lue->exclusion = exclusion;
/* Init node */
lttng_ht_node_init_str(&lue->node, lue->attr.name);
tracker_node = pid_tracker_lookup(pid_tracker, pid, &iter);
if (tracker_node) {
/* Already exists. */
- retval = LTTNG_ERR_INVALID;
+ retval = LTTNG_ERR_PID_TRACKED;
goto end;
}
tracker_node = zmalloc(sizeof(*tracker_node));
tracker_node = pid_tracker_lookup(pid_tracker, pid, &iter);
if (!tracker_node) {
/* Not found */
- retval = LTTNG_ERR_INVALID;
+ retval = LTTNG_ERR_PID_NOT_TRACKED;
goto end;
}
ret = lttng_ht_del(pid_tracker->ht, &iter);
buffer_reg_uid_destroy(reg, session->consumer);
}
- consumer_destroy_output(session->consumer);
- consumer_destroy_output(session->tmp_consumer);
+ consumer_output_put(session->consumer);
fini_pid_tracker(&session->pid_tracker);