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

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Thu Oct 15 02:41:41 MSK 2020


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'.

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.

> 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.

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


More information about the Tarantool-patches mailing list