Arena and threads
Pierre Abbat
phma at leaf.dragonflybsd.org
Wed Oct 30 14:27:30 PDT 2019
On Wednesday, 30 October 2019 15.26.01 EDT Matthew Dillon wrote:
> Generally speaking the allocation algorithm depends on the language, the OS
> doesn't have a lot to do with it. Anything linked against libc (that is,
> any C program), however, will use the allocator in libc which we do
> control. That allocator allocates per-thread zones.
>
> That said, the memory allocator itself, no matter what the language, is
> still just allocating memory that is shared across all the threads. No
> copying is involved. All the threads share the same address space. Any
> locking is up to the program (or the language) itself.
It's C++. My concern is whether there's a way to return the memory to the OS
if it was allocated in a thread (say the program has been idle for a minute).
In Linux, only the main thread can do that. The main thread allocates with
brk; the other threads allocate with mmap.
Pierre
--
gau do li'i co'e kei do
More information about the Users
mailing list