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 <e...@regit.org>
Blog: https://home.regit.org/
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to