diff options
author | Jiri Olsa <jolsa@kernel.org> | 2015-06-23 00:36:05 +0200 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2015-06-25 15:15:50 -0300 |
commit | 186fbb7432f4a740b4fbaf4145375442210110bb (patch) | |
tree | dbe98386a183e60d849c11f12c1396abd4baa05e /tools/perf/util/thread_map.h | |
parent | f30a79b012e5d9b3887f6a59293d9ef3ca0e2c3e (diff) | |
download | linux-186fbb7432f4a740b4fbaf4145375442210110bb.tar.bz2 |
perf tools: Add reference counting for thread_map object
Adding reference counting for thread_map object, so it could be easily
shared among other objects.
Using thread_map__put instead thread_map__delete and making
thread_map__delete static.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1435012588-9007-5-git-send-email-jolsa@kernel.org
[ Adjustments to move it ahead of the "comm" patches ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/thread_map.h')
-rw-r--r-- | tools/perf/util/thread_map.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/tools/perf/util/thread_map.h b/tools/perf/util/thread_map.h index b9f40679f589..6b0cd2dc006b 100644 --- a/tools/perf/util/thread_map.h +++ b/tools/perf/util/thread_map.h @@ -3,12 +3,14 @@ #include <sys/types.h> #include <stdio.h> +#include <linux/atomic.h> struct thread_map_data { pid_t pid; }; struct thread_map { + atomic_t refcnt; int nr; struct thread_map_data map[]; }; @@ -19,11 +21,12 @@ struct thread_map *thread_map__new_by_tid(pid_t tid); struct thread_map *thread_map__new_by_uid(uid_t uid); struct thread_map *thread_map__new(pid_t pid, pid_t tid, uid_t uid); +struct thread_map *thread_map__get(struct thread_map *map); +void thread_map__put(struct thread_map *map); + struct thread_map *thread_map__new_str(const char *pid, const char *tid, uid_t uid); -void thread_map__delete(struct thread_map *threads); - size_t thread_map__fprintf(struct thread_map *threads, FILE *fp); static inline int thread_map__nr(struct thread_map *threads) |