Re: [PATCH 07/30] perf tools: Add reference counting for thread_map object

Jiri Olsa
2015-06-15T21:28:59Z

On Mon, Jun 15, 2015 at 04:25:44PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Sun, Jun 14, 2015 at 10:19:22AM +0200, Jiri Olsa escreveu:
> > Adding refference 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.
>
> <SNIP>
>
> > +struct thread_map *thread_map__get(struct thread_map *map)
> > +{
> > + atomic_inc(&map->refcnt);
> > + return map;
> > +}
> > +
> > +void thread_map__put(struct thread_map *map)
> > +{
> > + if (map && atomic_dec_and_test(&map->refcnt))
> > + thread_map__delete(map);
> > }
>
> See comment on the other struct being refcounted, get/put should
> both accept NULL maps, to avoid having to check it in the users,
> just like with free().

ook, will repost with the get function fix

thanks,
jirka