1*1208bc7eSAndroid Build Coastguard Worker #include "test/jemalloc_test.h" 2*1208bc7eSAndroid Build Coastguard Worker 3*1208bc7eSAndroid Build Coastguard Worker /* 4*1208bc7eSAndroid Build Coastguard Worker * Sleep for approximately ns nanoseconds. No lower *nor* upper bound on sleep 5*1208bc7eSAndroid Build Coastguard Worker * time is guaranteed. 6*1208bc7eSAndroid Build Coastguard Worker */ 7*1208bc7eSAndroid Build Coastguard Worker void mq_nanosleep(unsigned ns)8*1208bc7eSAndroid Build Coastguard Workermq_nanosleep(unsigned ns) { 9*1208bc7eSAndroid Build Coastguard Worker assert(ns <= 1000*1000*1000); 10*1208bc7eSAndroid Build Coastguard Worker 11*1208bc7eSAndroid Build Coastguard Worker #ifdef _WIN32 12*1208bc7eSAndroid Build Coastguard Worker Sleep(ns / 1000); 13*1208bc7eSAndroid Build Coastguard Worker #else 14*1208bc7eSAndroid Build Coastguard Worker { 15*1208bc7eSAndroid Build Coastguard Worker struct timespec timeout; 16*1208bc7eSAndroid Build Coastguard Worker 17*1208bc7eSAndroid Build Coastguard Worker if (ns < 1000*1000*1000) { 18*1208bc7eSAndroid Build Coastguard Worker timeout.tv_sec = 0; 19*1208bc7eSAndroid Build Coastguard Worker timeout.tv_nsec = ns; 20*1208bc7eSAndroid Build Coastguard Worker } else { 21*1208bc7eSAndroid Build Coastguard Worker timeout.tv_sec = 1; 22*1208bc7eSAndroid Build Coastguard Worker timeout.tv_nsec = 0; 23*1208bc7eSAndroid Build Coastguard Worker } 24*1208bc7eSAndroid Build Coastguard Worker nanosleep(&timeout, NULL); 25*1208bc7eSAndroid Build Coastguard Worker } 26*1208bc7eSAndroid Build Coastguard Worker #endif 27*1208bc7eSAndroid Build Coastguard Worker } 28