[Tarantool-patches] [PATCH v3 02/16] module api: expose box region

Alexander Turenko alexander.turenko at tarantool.org
Thu Oct 15 16:17:16 MSK 2020


On Thu, Oct 15, 2020 at 01:41:41AM +0200, Vladislav Shpilevoy wrote:
> Thanks for the patch!
> 
> See 3 comments below.
> 
> > diff --git a/src/exports.h b/src/exports.h
> > index 6d8303180..7861bb529 100644
> > --- a/src/exports.h
> > +++ b/src/exports.h
> > @@ -218,6 +218,10 @@ EXPORT(fiber_is_cancelled)
> >  EXPORT(fiber_join)
> >  EXPORT(fiber_new)
> >  EXPORT(fiber_new_ex)
> > +EXPORT(box_region_aligned_alloc)
> > +EXPORT(box_region_alloc)
> > +EXPORT(box_region_truncate)
> > +EXPORT(box_region_used)
> 
> 1. Could you please keep the function list sorted?
> 'b' < 'f'.

Ouch, sorry for this. Fixed on the branch.

> 
> 2. Don't we want to also export reserve/aligned_reserve,
> while we are here? They are useful when need to write data
> knowing its maximal size, and then call alloc() with the
> exact size in the end.

I don't like to do something in a hurry and without proper documentation
and test.

It surely worth it, so included into my backlog.

> 
> > diff --git a/src/lib/core/fiber.h b/src/lib/core/fiber.h
> > index 16ee9f414..a3014cc0a 100644
> > --- a/src/lib/core/fiber.h
> > +++ b/src/lib/core/fiber.h
> > @@ -386,6 +386,82 @@ struct slab_cache;
> > +/**
> > + * Allocate size bytes from the box region.
> > + *
> > + * Don't use this function to allocate a memory block for a value
> > + * or array of values of a type with alignment requirements. A
> > + * violation of alignment requirements leads to undefined
> > + * behaviour.
> > + */
> > +API_EXPORT void *
> > +box_region_alloc(size_t size);
> > +
> > +/**
> > + * Allocate size bytes from the box region with given alignment.
> > + *
> > + * Alignment must be a power of 2.
> > + */
> > +API_EXPORT void *
> > +box_region_aligned_alloc(size_t size, size_t alignment);
> > +
> > +/**
> > + * Truncate the box region to the given size.
> > + */
> > +void
> 
> 3. + API_EXPORT.

Fixed on the branches.

> 
> > +box_region_truncate(size_t size);
> > +
> >  /** \endcond public */


More information about the Tarantool-patches mailing list