Hi, On Thu, 2017-08-17 at 19:13 +0200, Phil Sutter wrote: > Hey, > > On Thu, Aug 17, 2017 at 07:09:02PM +0200, Eric Leblond wrote: > > On Thu, 2017-08-17 at 10:57 +0200, Phil Sutter wrote: > > > On Wed, Aug 16, 2017 at 10:42:55PM +0200, Eric Leblond wrote: > > [...] > > > > +void nft_global_init(void) > > > > +{ > > > > + mark_table_init(); > > > > + realm_table_rt_init(); > > > > + devgroup_table_init(); > > > > + realm_table_meta_init(); > > > > + ct_label_table_init(); > > > > + gmp_init(); > > > > +#ifdef HAVE_LIBXTABLES > > > > + xt_init(); > > > > +#endif > > > > +} > > > > + > > > > +void nft_global_deinit(void) > > > > +{ > > > > + ct_label_table_exit(); > > > > + realm_table_rt_exit(); > > > > + devgroup_table_exit(); > > > > + realm_table_meta_exit(); > > > > + mark_table_exit(); > > > > +} > > > > > > How about calling these from nft_context_new() and > > > nft_context_free()? > > > > I want to be able to have multiple context for a single process. > > Hence > > I defined a global init and deinit. But maybe it does not really > > make > > sense and could be attached to each context or init could be done > > at > > first usage. > > My idea was to implement simple reference counting to see whether the > library was already initialized and whether it is safe to deinit. Of > course this needs some serialization for thread-safety. > > Or maybe the deinit can be ignored completely and nft_global_init() > just > has to check whether data is already initialized or not. I have used numerous libraries providing a global init or deinit. For now we could easily skip it with your approach or another but I prefer we have it existing so it is available later in case of needs. ++ -- Eric Leblond <eric@xxxxxxxxx> Blog: https://home.regit.org/ -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html