Feature #16290
closedAdd Ruby C API to acquire aligned memory
Description
Related to https://github.com/ruby/ruby/pull/2614
I have required to acquire aligned memory in Ruby C-extension library (https://github.com/rmagick/rmagick/pull/832).
I want an API that notifies acquired size to Ruby GC.
Of course, I know that we can implement a similar function in extension library using rb_gc_adjust_memory_usage().
However, if Ruby have the API, we can easily use it in some extension libraries.
Updated by shyouhei (Shyouhei Urabe) about 5 years ago
I'm not in favor of this. There are many ways to allocate a memory region, like mmap(2). Do we have to provide ruby counterparts for every and all of them?
Updated by naruse (Yui NARUSE) about 5 years ago
shyouhei (Shyouhei Urabe) wrote:
I'm not in favor of this. There are many ways to allocate a memory region, like mmap(2). Do we have to provide ruby counterparts for every and all of them?
rb_aligned_malloc uses 5 underlying implementations.
It's hard to make C-extension developer to re-develop this.
It sounds reasonable to make public this implementation.
https://github.com/ruby/ruby/blob/853d91a04a4d133fc90b35c90570dc1c656a7922/gc.c#L9736-L9761
We don't have mmap(2) wrapper.
Updated by shyouhei (Shyouhei Urabe) about 5 years ago
naruse (Yui NARUSE) wrote:
shyouhei (Shyouhei Urabe) wrote:
I'm not in favor of this. There are many ways to allocate a memory region, like mmap(2). Do we have to provide ruby counterparts for every and all of them?
rb_aligned_malloc uses 5 underlying implementations.
It's hard to make C-extension developer to re-develop this.
In case of this request, ImageMagick already does have aligned allocator. If we provide one we would use any of 5 backends but that is not required at all. They already have it. What is wanted is a way to notify ruby about their memory usage.
Updated by watson1978 (Shizuo Fujita) almost 5 years ago
- Status changed from Open to Closed