Enhance spin_adaptive() to yield after several iterations.
This avoids worst case behavior if e.g. another thread is preempted while owning the resource the spinning thread is waiting for.
This commit is contained in:
16
test/unit/spin.c
Normal file
16
test/unit/spin.c
Normal file
@@ -0,0 +1,16 @@
|
||||
#include "test/jemalloc_test.h"
|
||||
|
||||
TEST_BEGIN(test_spin) {
|
||||
spin_t spinner = SPIN_INITIALIZER;
|
||||
|
||||
for (unsigned i = 0; i < 100; i++) {
|
||||
spin_adaptive(&spinner);
|
||||
}
|
||||
}
|
||||
TEST_END
|
||||
|
||||
int
|
||||
main(void) {
|
||||
return test(
|
||||
test_spin);
|
||||
}
|
Reference in New Issue
Block a user