tools lib traceevent: Implement a new API, tep_list_events_copy()
Existing API tep_list_events() is not thread safe, it uses the internal array sort_events to keep cache of the sorted events and reuses it. This patch implements a new API, tep_list_events_copy(), which allocates new sorted array each time it is called. It could be used when a sorted events functionality is needed in thread safe use cases. It is up to the caller to free the array. Signed-off-by: Tzvetomir Stoyanov <tstoyanov@vmware.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Link: http://lore.kernel.org/linux-trace-devel/20181218133013.31094-1-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190401164343.117437443@goodmis.org Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:

committed by
Arnaldo Carvalho de Melo

parent
fed33e905c
commit
6699ed712a
@@ -544,7 +544,10 @@ void tep_event_info(struct trace_seq *s, struct tep_event *event,
|
||||
int tep_strerror(struct tep_handle *pevent, enum tep_errno errnum,
|
||||
char *buf, size_t buflen);
|
||||
|
||||
struct tep_event **tep_list_events(struct tep_handle *pevent, enum tep_event_sort_type);
|
||||
struct tep_event **tep_list_events(struct tep_handle *tep,
|
||||
enum tep_event_sort_type);
|
||||
struct tep_event **tep_list_events_copy(struct tep_handle *tep,
|
||||
enum tep_event_sort_type);
|
||||
struct tep_format_field **tep_event_common_fields(struct tep_event *event);
|
||||
struct tep_format_field **tep_event_fields(struct tep_event *event);
|
||||
|
||||
|
Reference in New Issue
Block a user