- Mar 24, 2012
-
-
Jason Evans authored
Remove ephemeral mutexes from the prof machinery, and remove malloc_mutex_destroy(). This simplifies mutex management on systems that call malloc()/free() inside pthread_mutex_{create,destroy}(). Add atomic_*_u() for operation on unsigned values. Fix prof_printf() to call malloc_vsnprintf() rather than malloc_snprintf().
-
Jason Evans authored
Forcibly disable TLS on OS X. gcc and llvm-gcc on OS X do not support TLS, but clang does. Unfortunately, the implementation calls malloc() internally during TLS initialization, which causes an unresolvable bootstrapping issue.
-
Jason Evans authored
Remove the -no-cpp-precomp compiler flag when compiling on OS X. clang does not support the flag, and gcc works fine without it.
-
Jason Evans authored
Restructure atomic_*_z() so that no casting within macros is necessary. This avoids warnings when compiling with clang.
-
- Mar 23, 2012
-
-
Jason Evans authored
Add JEMALLOC_CC_SILENCE_INIT(), which provides succinct syntax for initializing a variable to avoid a spurious compiler warning.
-
Jason Evans authored
Implement tsd, which is a TLS/TSD abstraction that uses one or both internally. Modify bootstrapping such that no tsd's are utilized until allocation is safe. Remove malloc_[v]tprintf(), and use malloc_snprintf() instead. Fix %p argument size handling in malloc_vsnprintf(). Fix a long-standing statistics-related bug in the "thread.arena" mallctl that could cause crashes due to linked list corruption.
-
- Mar 20, 2012
-
-
Mike Hommey authored
I tested a build from 10.7 run on 10.7 and 10.6, and a build from 10.6 run on 10.6. The AC_COMPILE_IFELSE limbo is to avoid running a program during configure, which presumably makes it work when cross compiling for iOS.
-
Mike Hommey authored
-
- Mar 19, 2012
-
-
Jason Evans authored
Generalize dlsym() configuration to succeed if dlsym() is in libc rather than libdl.
-
Jason Evans authored
-
Jason Evans authored
Reported by Mike Hommey.
-
Jason Evans authored
-
- Mar 17, 2012
-
-
Jason Evans authored
-
Jason Evans authored
If there is no libpthread, look for pthreads functionality in libc before failing to configure pthreads. This is necessary on at least the Android platform. Reported by Mike Hommey.
-
- Mar 16, 2012
-
-
Jason Evans authored
Remove #include <sys/sysctl.h>, which is no longer needed (now using sysconf(3) to get number of CPUs).
-
- Mar 14, 2012
-
-
Jason Evans authored
Acquire/release arena bin locks as part of the prefork/postfork. This bug made deadlock in the child between fork and exec a possibility. Split jemalloc_postfork() into jemalloc_postfork_{parent,child}() so that the child can reinitialize mutexes rather than unlocking them. In practice, this bug tended not to cause problems.
-
- Mar 13, 2012
-
-
Jason Evans authored
Modify malloc_vsnprintf() validation code to verify that output is identical to vsnprintf() output, even if both outputs are truncated due to buffer exhaustion.
-
Jason Evans authored
Implement aligned_alloc(), which was added in the C11 standard. The function is weakly specified to the point that a minimally compliant implementation would be painful to use (size must be an integral multiple of alignment!), which in practice makes posix_memalign() a safer choice.
-
Jason Evans authored
Revert JE_COMPILABLE() so that it detects link errors. Cross-compiling should still work as long as a valid configure cache is provided. Clean up some comments/whitespace.
-
Jason Evans authored
Fix malloc_stats_print() to honor 'b' and 'l' in the opts parameter.
-
- Mar 12, 2012
-
-
Jason Evans authored
-
Jason Evans authored
Fix --with-mangling to remove mangled symbols from the set of functions to apply a prefix to. Prior to this change, the interaction was correct with autoconf 2.59, but incorrect with autoconf 2.65.
-
Jason Evans authored
-
Jason Evans authored
Submitted by Mike Hommey.
-
Jason Evans authored
-
- Mar 08, 2012
-
-
Jason Evans authored
Implement malloc_vsnprintf() (a subset of vsnprintf(3)) as well as several other printing functions based on it, so that formatted printing can be relied upon without concern for inducing a dependency on floating point runtime support. Replace malloc_write() calls with malloc_*printf() where doing so simplifies the code. Add name mangling for library-private symbols in the data and BSS sections. Adjust CONF_HANDLE_*() macros in malloc_conf_init() to expose all opt_* variable use to cpp so that proper mangling occurs.
-
- Mar 05, 2012
-
-
Jason Evans authored
Remove the lg_tcache_gc_sweep option, because it is no longer very useful. Prior to the addition of dynamic adjustment of tcache fill count, it was possible for fill/flush overhead to be a problem, but this problem no longer occurs.
-
Jason Evans authored
-
Jason Evans authored
Submitted by Andreas Vinsander.
-
Jason Evans authored
Submitted by Andreas Vinsander.
-
- Mar 04, 2012
-
-
Jason Evans authored
Update Facebook's software license (with permission from Facebook) to merge with that of the other copyright holders.
-
- Mar 03, 2012
-
-
Jason Evans authored
-
Jason Evans authored
-
Jason Evans authored
-
Jason Evans authored
Rename prn to prng so that Windows doesn't choke when trying to create a file named prn.h.
-
- Mar 02, 2012
-
-
Jason Evans authored
-
Jason Evans authored
Add the --with-mangling configure option, which can be used to specify name mangling on a per public symbol basis that takes precedence over --with-jemalloc-prefix. Expose the memalign() and valloc() overrides even if --with-jemalloc-prefix is specified. This change does no real harm, and simplifies the code.
-
- Feb 29, 2012
-
-
Jason Evans authored
Simplify zone_good_size() to avoid memory allocation. Submitted by Mike Hommey.
-
Jason Evans authored
Add nallocm(), which computes the real allocation size that would result from the corresponding allocm() call. nallocm() is a functional superset of OS X's malloc_good_size(), in that it takes alignment constraints into account.
-
Jason Evans authored
When jemalloc is used as a libc malloc replacement (i.e. not prefixed), some particular setups may end up inconsistently calling malloc from libc and free from jemalloc, or the other way around. glibc provides hooks to make its functions use alternative implementations. Use them. Submitted by Karl Tomlinson and Mike Hommey.
-