[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