server-skynet-source-3rd-je.../include/jemalloc/internal
Jason Evans 577d4572b0 Make dss operations lockless.
Rather than protecting dss operations with a mutex, use atomic
operations.  This has negligible impact on synchronization overhead
during typical dss allocation, but is a substantial improvement for
extent_in_dss() and the newly added extent_dss_mergeable(), which can be
called multiple times during extent deallocations.

This change also has the advantage of avoiding tsd in deallocation paths
associated with purging, which resolves potential deadlocks during
thread exit due to attempted tsd resurrection.

This resolves #425.
2016-10-13 15:37:00 -07:00
..
arena.h Remove ratio-based purging. 2016-10-12 10:40:27 -07:00
assert.h Tweak code to allow compilation of concatenated src/*.c sources. 2015-11-12 11:06:41 -08:00
atomic.h Define 64-bits atomics unconditionally 2016-06-09 23:17:39 +09:00
base.h Resolve bootstrapping issues when embedded in FreeBSD libc. 2016-05-10 22:51:33 -07:00
bitmap.h Move slabs out of chunks. 2016-06-05 20:42:23 -07:00
ckh.h Resolve bootstrapping issues when embedded in FreeBSD libc. 2016-05-10 22:51:33 -07:00
ctl.h Remove ratio-based purging. 2016-10-12 10:40:27 -07:00
extent_dss.h Make dss operations lockless. 2016-10-13 15:37:00 -07:00
extent_mmap.h Rename most remaining *chunk* APIs to *extent*. 2016-06-05 20:42:23 -07:00
extent.h Make dss operations lockless. 2016-10-13 15:37:00 -07:00
hash.h typecast address to pointer to byte to avoid unaligned memory access error 2016-03-10 22:49:05 -08:00
jemalloc_internal_decls.h Refine nstime_update(). 2016-10-10 10:33:59 -07:00
jemalloc_internal_defs.h.in Refine nstime_update(). 2016-10-10 10:33:59 -07:00
jemalloc_internal_macros.h Use KQU() rather than QU() where applicable. 2014-05-28 21:17:42 -07:00
jemalloc_internal.h.in Add/use adaptive spinning. 2016-10-13 14:55:39 -07:00
large.h Make dss operations lockless. 2016-10-13 15:37:00 -07:00
mb.h Use TSDN_NULL rather than NULL as appropriate. 2016-05-12 21:07:08 -07:00
mutex.h Add rtree element witnesses. 2016-06-03 12:27:41 -07:00
nstime.h Do not advance decay epoch when time goes backwards. 2016-10-10 22:15:10 -07:00
pages.h Move *PAGE* definitions to pages.h. 2016-06-03 12:27:41 -07:00
ph.h Fix a style nit. 2016-04-12 23:18:25 -07:00
private_namespace.sh Refactor to support more varied testing. 2013-12-03 22:06:59 -08:00
private_symbols.txt Make dss operations lockless. 2016-10-13 15:37:00 -07:00
private_unnamespace.sh Refactor to support more varied testing. 2013-12-03 22:06:59 -08:00
prng.h Implement cache-oblivious support for huge size classes. 2016-06-03 12:27:41 -07:00
prof.h Add a missing prof_alloc_rollback() call. 2016-06-05 20:42:24 -07:00
public_namespace.sh Fix name mangling for stress tests. 2014-01-16 17:38:01 -08:00
public_unnamespace.sh Fix name mangling for stress tests. 2014-01-16 17:38:01 -08:00
ql.h Style and spelling fixes. 2014-12-08 16:34:04 -08:00
qr.h Style and spelling fixes. 2014-12-08 16:34:04 -08:00
rb.h Remove rbt_nil 2016-02-23 18:09:25 -08:00
rtree.h Add rtree lookup path caching. 2016-06-05 20:59:57 -07:00
size_classes.sh Relax NBINS constraint (max 255 --> max 256). 2016-06-05 20:42:24 -07:00
smoothstep.h Implement smoothstep table generation. 2016-02-19 20:56:15 -08:00
smoothstep.sh Implement smoothstep table generation. 2016-02-19 20:56:15 -08:00
spin.h Add/use adaptive spinning. 2016-10-13 14:55:39 -07:00
stats.h Remove all vestiges of chunks. 2016-10-12 11:55:43 -07:00
tcache.h Make tsd cleanup functions optional, remove noop cleanup functions. 2016-06-05 20:42:24 -07:00
ticker.h Implement ticker. 2016-02-19 20:29:06 -08:00
tsd.h Avoid self assignment in tsd_set(). 2016-09-23 12:21:34 -07:00
util.h Check for __builtin_unreachable at configure time 2016-07-07 13:28:44 -07:00
witness.h Make tsd cleanup functions optional, remove noop cleanup functions. 2016-06-05 20:42:24 -07:00