summaryrefslogtreecommitdiffstats
path: root/include/jemalloc/internal/ckh.h
Commit message (Collapse)AuthorAgeFilesLines
* Header refactoring: tsd - cleanup and dependency breaking.David Goldblatt2017-05-011-1/+1
| | | | | | | | | | | | This removes the tsd macros (which are used only for tsd_t in real builds). We break up the circular dependencies involving tsd. We also move all tsd access through getters and setters. This allows us to assert that we only touch data when tsd is in a valid state. We simplify the usages of the x macro trick, removing all the customizability (get/set, init, cleanup), moving the lifetime logic to tsd_init and tsd_cleanup. This lets us make initialization order independent of order within tsd_t.
* Header refactoring: ckh module - remove from the catchall and unify.David Goldblatt2017-04-241-0/+101
|
* Break up headers into constituent partsDavid Goldblatt2017-01-121-86/+0
| | | | | | | | | | This is part of a broader change to make header files better represent the dependencies between one another (see https://github.com/jemalloc/jemalloc/issues/533). It breaks up component headers into smaller parts that can be made to have a simpler dependency graph. For the autogenerated headers (smoothstep.h and size_classes.h), no splitting was necessary, so I didn't add support to emit multiple headers.
* Do not (recursively) allocate within tsd_fetch().Jason Evans2016-10-211-4/+4
| | | | | | | Refactor tsd so that tsdn_fetch() does not trigger allocation, since allocation could cause infinite recursion. This resolves #458.
* Resolve bootstrapping issues when embedded in FreeBSD libc.Jason Evans2016-05-111-4/+4
| | | | | | | | | | | | | b2c0d6322d2307458ae2b28545f8a5c9903d7ef5 (Add witness, a simple online locking validator.) caused a broad propagation of tsd throughout the internal API, but tsd_fetch() was designed to fail prior to tsd bootstrapping. Fix this by splitting tsd_t into non-nullable tsd_t and nullable tsdn_t, and modifying all internal APIs that do not critically rely on tsd to take nullable pointers. Furthermore, add the tsd_booted_get() function so that tsdn_fetch() can probe whether tsd bootstrapping is complete and return NULL if not. All dangerous conversions of nullable pointers are tsdn_tsd() calls that assert-fail on invalid conversion.
* Fix a typo in the ckh_search() prototype.Christopher Ferris2016-02-201-1/+1
|
* Refactor prng* from cpp macros into inline functions.Jason Evans2016-02-201-3/+1
| | | | | Remove 32-bit variant, convert prng64() to prng_lg_range(), and add prng_range().
* Convert all tsd variables to reside in a single tsd structure.Jason Evans2014-09-231-4/+4
|
* Normalize #define whitespace.Jason Evans2013-12-091-1/+1
| | | | Consistently use a tab rather than a space following #define.
* Update hash from MurmurHash2 to MurmurHash3.Jason Evans2013-01-221-5/+3
| | | | | | Update hash from MurmurHash2 to MurmurHash3, primarily because the latter generates 128 bits in a single call for no extra cost, which simplifies integration with cuckoo hashing.
* Rename prn to prng.Jason Evans2012-03-021-1/+1
| | | | | Rename prn to prng so that Windows doesn't choke when trying to create a file named prn.h.
* Remove magic.Jason Evans2012-02-131-3/+0
| | | | | | Remove structure magic, because 1) it is no longer conditional, and 2) it stopped being very effective at detecting memory corruption several years ago.
* Reduce cpp conditional logic complexity.Jason Evans2012-02-111-2/+0
| | | | | | | | | | | | | | | | | | | | | | Convert configuration-related cpp conditional logic to use static constant variables, e.g.: #ifdef JEMALLOC_DEBUG [...] #endif becomes: if (config_debug) { [...] } The advantage is clearer, more concise code. The main disadvantage is that data structures no longer have conditionally defined fields, so they pay the cost of all fields regardless of whether they are used. In practice, this is only a minor concern; config_stats will go away in an upcoming change, and config_prof is the only other major feature that depends on more than a few special-purpose fields.
* Move repo contents in jemalloc/ to top level.Jason Evans2011-04-011-0/+95