Go to file
Jason Evans 41b6afb834 Port to FreeBSD.
Use FreeBSD-specific functions (_pthread_mutex_init_calloc_cb(),
_malloc_{pre,post}fork()) to avoid bootstrapping issues due to
allocation in libc and libthr.

Add malloc_strtoumax() and use it instead of strtoul().  Disable
validation code in malloc_vsnprintf() and malloc_strtoumax() until
jemalloc is initialized.  This is necessary because locale
initialization causes allocation for both vsnprintf() and strtoumax().

Force the lazy-lock feature on in order to avoid pthread_self(),
because it causes allocation.

Use syscall(SYS_write, ...) rather than write(...), because libthr wraps
write() and causes allocation.  Without this workaround, it would not be
possible to print error messages in malloc_conf_init() without
substantially reworking bootstrapping.

Fix choose_arena_hard() to look at how many threads are assigned to the
candidate choice, rather than checking whether the arena is
uninitialized.  This bug potentially caused more arenas to be
initialized than necessary.
2012-02-02 23:09:53 -08:00
bin Refactor SO and REV make variables. 2011-11-01 22:27:41 -07:00
doc Fix various documentation formatting regressions. 2012-03-19 09:36:44 -07:00
include/jemalloc Port to FreeBSD. 2012-02-02 23:09:53 -08:00
src Port to FreeBSD. 2012-02-02 23:09:53 -08:00
test Implement aligned_alloc(). 2012-03-13 12:55:21 -07:00
.gitignore Simplify small size class infrastructure. 2012-02-28 16:50:47 -08:00
autogen.sh Move repo contents in jemalloc/ to top level. 2011-03-31 20:36:17 -07:00
ChangeLog Update ChangeLog for 2.2.5. 2011-11-14 17:12:45 -08:00
config.guess Update config.guess and config.sub. 2012-03-12 15:57:24 -07:00
config.stamp.in Move repo contents in jemalloc/ to top level. 2011-03-31 20:36:17 -07:00
config.sub Update config.guess and config.sub. 2012-03-12 15:57:24 -07:00
configure.ac Port to FreeBSD. 2012-02-02 23:09:53 -08:00
COPYING Unify license. 2012-03-04 10:46:12 -08:00
INSTALL Add the --disable-experimental option. 2012-03-02 17:47:37 -08:00
install-sh Move repo contents in jemalloc/ to top level. 2011-03-31 20:36:17 -07:00
Makefile.in Implement tsd. 2012-03-23 15:14:55 -07:00
README Port to FreeBSD. 2012-02-02 23:09:53 -08:00

jemalloc is a general-purpose scalable concurrent malloc(3) implementation.
This distribution is a stand-alone "portable" implementation that currently
targets FreeBSD, Linux and Apple OS X.  jemalloc is included as the default
allocator in the FreeBSD and NetBSD operating systems, and it is used by the
Mozilla Firefox web browser on Microsoft Windows-related platforms.  Depending
on your needs, one of the other divergent versions may suit your needs better
than this distribution.

The COPYING file contains copyright and licensing information.

The INSTALL file contains information on how to configure, build, and install
jemalloc.

The ChangeLog file contains a brief summary of changes for each release.

URL: http://www.canonware.com/jemalloc/