summaryrefslogtreecommitdiffstats
path: root/src/tsd.c
Commit message (Collapse)AuthorAgeFilesLines
* Optimize malloc() and free() fast paths.Jason Evans2012-05-021-1/+1
| | | | | | | | | | Embed the bin index for small page runs into the chunk page map, in order to omit [...] in the following dependent load sequence: ptr-->mapelm-->[run-->bin-->]bin_info Move various non-critcal code out of the inlined function chain into helper functions (tcache_event_hard(), arena_dalloc_small(), and locking).
* Add support for MSVCMike Hommey2012-05-011-0/+8
| | | | Tested with MSVC 8 32 and 64 bits.
* Replace JEMALLOC_ATTR with various different macros when it makes senseMike Hommey2012-05-011-2/+4
| | | | | | Theses newly added macros will be used to implement the equivalent under MSVC. Also, move the definitions to headers, where they make more sense, and for some, are even more useful there (e.g. malloc).
* Avoid variable length arrays and remove declarations within codeMike Hommey2012-04-291-1/+1
| | | | | | | | | | | | 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.
* Add support for MingwMike Hommey2012-04-221-1/+26
|
* Remove extra argument for malloc_tsd_cleanup_registerMike Hommey2012-04-191-4/+3
| | | | | Bookkeeping an extra argument that actually only stores a function pointer for a function we already have is not very useful.
* Make special FreeBSD function overrides visible.Jason Evans2012-04-191-0/+1
| | | | | | Make special FreeBSD libc/libthr function overrides for _malloc_prefork(), _malloc_postfork(), and _malloc_thread_cleanup() visible.
* Remove arena_malloc_prechosen().Jason Evans2012-04-061-1/+1
| | | | | Remove arena_malloc_prechosen(), now that arena_malloc() can be invoked in a way that is semantically equivalent.
* Implement tsd.Jason Evans2012-03-231-0/+72
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.