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.
32 lines
573 B
C
32 lines
573 B
C
#ifndef JEMALLOC_INTERNAL_SPIN_INLINES_H
|
|
#define JEMALLOC_INTERNAL_SPIN_INLINES_H
|
|
|
|
#ifndef JEMALLOC_ENABLE_INLINE
|
|
void spin_init(spin_t *spin);
|
|
void spin_adaptive(spin_t *spin);
|
|
#endif
|
|
|
|
#if (defined(JEMALLOC_ENABLE_INLINE) || defined(JEMALLOC_SPIN_C_))
|
|
JEMALLOC_INLINE void
|
|
spin_init(spin_t *spin)
|
|
{
|
|
|
|
spin->iteration = 0;
|
|
}
|
|
|
|
JEMALLOC_INLINE void
|
|
spin_adaptive(spin_t *spin)
|
|
{
|
|
volatile uint64_t i;
|
|
|
|
for (i = 0; i < (KQU(1) << spin->iteration); i++)
|
|
CPU_SPINWAIT;
|
|
|
|
if (spin->iteration < 63)
|
|
spin->iteration++;
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif /* JEMALLOC_INTERNAL_SPIN_INLINES_H */
|