| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
MSVC doesn't support C99, and building as C++ to be able to use them is
dangerous, as C++ and C99 are incompatible.
Introduce a VARIABLE_ARRAY macro that either uses VLA when supported,
or alloca() otherwise. Note that using alloca() inside loops doesn't
quite work like VLAs, thus the use of VARIABLE_ARRAY there is discouraged.
It might be worth investigating ways to check whether VARIABLE_ARRAY is
used in such context at runtime in debug builds and bail out if that
happens.
|
| |
|
|
|
|
|
| |
Handle prof_tdata resurrection during thread shutdown, similarly to how
tcache and quarantine handle resurrection.
|
|
|
|
|
|
| |
Don't set prof_tdata during thread cleanup, because doing so will cause
the cleanup function to be called again, the second time with a NULL
argument.
|
|
|
|
| |
Reported by Daichi GOTO.
|
|
|
|
|
| |
Fix a PROF_ALLOC_PREP() error path to initialize the return value to
NULL.
|
|
|
|
|
| |
Fix the "epoch" mallctl to update cached stats even if the passed in
epoch is 0.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Handle quarantine resurrection during thread exit in much the same way
as tcache resurrection is handled.
|
| |
|
|
|
|
|
| |
Fix ctl to correctly compute the number of children at each level of the
ctl tree.
|
|
|
|
|
| |
Don't link tests with libraries that only libjemalloc needs to be linked
to.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Fix jemalloc.sh code generation by adding @sorev@ and using it instead
of @SOREV@ (which contains Makefile-specific variables).
|
|
|
|
|
|
|
| |
MSVC doesn't support C99, and as such doesn't support designated
initialization of structs and unions. As there is never a mix of
indexed and named nodes, it is pretty straightforward to use a
different type for each.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fix a potential deadlock that could occur during interval- and
growth-triggered heap profile dumps.
Fix an off-by-one heap profile statistics bug that could be observed in
interval- and growth-triggered heap profiles.
Fix heap profile dump filename sequence numbers (regression during
conversion to malloc_snprintf()).
|
| |
|
|
|
|
|
|
|
| |
Since we're now including jemalloc_internal.h, all the required headers
are already pulled. This will avoid having to fiddle with headers that can
or can't be used with MSVC. Also, now that we use malloc_printf, we can use
util.h's definition of assert instead of assert.h's.
|
| |
|
|
|
|
|
| |
Commit 4eeb52f removed vsnprintf validation, but left a now unused va_copy.
It so happens that MSVC doesn't support va_copy.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove mmap_unaligned, which was used to heuristically decide whether to
optimistically call mmap() in such a way that could reduce the total
number of system calls. If I remember correctly, the intention of
mmap_unaligned was to avoid always executing the slow path in the
presence of ASLR. However, that reasoning seems to have been based on a
flawed understanding of how ASLR actually works. Although ASLR
apparently causes mmap() to ignore address requests, it does not cause
total placement randomness, so there is a reasonable expectation that
iterative mmap() calls will start returning chunk-aligned mappings once
the first chunk has been properly aligned.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix chunk_alloc_dss() to zero memory when requested.
Fix chunk_dealloc() to avoid chunk_dealloc_mmap() for dss-allocated
memory.
Fix huge_palloc() to always junk fill when requested.
Improve chunk_recycle() to report that memory is zeroed as a side effect
of pages_purge().
|
|
|
|
|
|
|
|
|
| |
Fix a memory corruption bug in chunk_alloc_dss() that was due to
claiming newly allocated memory is zeroed.
Reverse order of preference between mmap() and sbrk() to prefer mmap().
Clean up management of 'zero' parameter in chunk_alloc*().
|
|
|
|
|
| |
Put CONF_HANDLE_*() keys in quotes, so that they aren't mangled when
--with-private-namespace is used.
|
| |
|
| |
|
|
|
|
| |
Don't mangle pthread_create(); it's an exported symbol when defined.
|
| |
|
|
|
|
|
| |
Bookkeeping an extra argument that actually only stores a function pointer
for a function we already have is not very useful.
|
|
|
|
|
|
| |
Using static memory when malloc_tsd_malloc fails means all threads share
the same wrapper and thus the same wrapped value. This defeats the purpose
of TSD.
|
|
|
|
|
|
| |
Not setting the initialized member leads to randomly calling the cleanup
function in cases it shouldn't be called (and isn't called in other
implementations).
|
|
|
|
|
|
| |
Make special FreeBSD libc/libthr function overrides for
_malloc_prefork(), _malloc_postfork(), and _malloc_thread_cleanup()
visible.
|
|
|
|
|
|
| |
These flags take unsigned values, but they were fed with signed values
taken with va_arg, and that led to sign extension in cases where the
corresponding value has the most significant bit set.
|
|
|
|
|
| |
This will be used to implement the feature on mingw, which doesn't have
madvise.
|
| |
|
|
|
|
| |
PIC_CFLAGS is defined
|
|
|
|
|
|
|
|
| |
This allows for different patterns for file names:
- lib.so.version for e.g. Linux
- lib.version.dylib for OSX (which is much more common than
lib.dylib.version)
- lib.dll for Windows (no version at all).
|
|
|
|
|
|
| |
Clean up a few config-related conditionals to avoid unnecessary
dependencies on prof symbols. Use cassert() rather than assert()
everywhere that it's appropriate.
|
|
|
|
|
|
|
|
|
| |
Change the "opt.lg_prof_sample" default from 0 to 19 (1 B to 512 KiB).
Change the "opt.prof_accum" default from true to false.
Add the "opt.prof_final" mallctl, so that "opt.prof_prefix" need not be
abused to disable final profile dumping.
|
| |
|
|
|
|
|
| |
Add atomic(9) implementations of atomic operations. These are used on
FreeBSD for non-x86 architectures.
|
| |
|
|
|
|
| |
This will make things easier for MSVC support.
|
|
|
|
|
|
| |
suffixes
This makes hacking on Makefile easier.
|