Fix the following use-case:
593 lttng create
594 lttng enable-channel test1 -u
595 lttng enable-event -u -a
596 lttng enable-event -u -a -c test1
597 lttng start
run ./demo-trace
598 lttng stop
600 lttng view |wc -l
Previously, we were seeing only 8 events (number of events written in a
single stream), but now we see 16 events (each event is dispatched into
two streams).
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
head = &chan->session->events_ht.table[hash & (LTTNG_UST_EVENT_HT_SIZE - 1)];
cds_hlist_for_each_entry(event, node, head, hlist) {
assert(event->desc);
head = &chan->session->events_ht.table[hash & (LTTNG_UST_EVENT_HT_SIZE - 1)];
cds_hlist_for_each_entry(event, node, head, hlist) {
assert(event->desc);
- if (!strncmp(event->desc->name,
- desc->name,
- LTTNG_UST_SYM_NAME_LEN - 1)) {
+ if (!strncmp(event->desc->name, desc->name,
+ LTTNG_UST_SYM_NAME_LEN - 1)
+ && chan == event->chan) {
ret = -EEXIST;
goto exist;
}
ret = -EEXIST;
goto exist;
}
int lttng_event_match_enabler(struct lttng_event *event,
struct lttng_enabler *enabler)
{
int lttng_event_match_enabler(struct lttng_event *event,
struct lttng_enabler *enabler)
{
- return lttng_desc_match_enabler(event->desc, enabler);
+ if (lttng_desc_match_enabler(event->desc, enabler)
+ && event->chan == enabler->chan)
+ return 1;
+ else
+ return 0;
hash = jhash(event_name, name_len, 0);
head = &session->events_ht.table[hash & (LTTNG_UST_EVENT_HT_SIZE - 1)];
cds_hlist_for_each_entry(event, node, head, hlist) {
hash = jhash(event_name, name_len, 0);
head = &session->events_ht.table[hash & (LTTNG_UST_EVENT_HT_SIZE - 1)];
cds_hlist_for_each_entry(event, node, head, hlist) {
- if (event->desc == desc)
+ if (event->desc == desc
+ && event->chan == enabler->chan)