From ddbe6126d365a77ed94aee0b961d7cd334ea2a9b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 22 Jan 2009 22:50:03 +0100 Subject: use pthread_setaffinity_np() only when it is available --- src/tests/rtstutter.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/tests/rtstutter.c') diff --git a/src/tests/rtstutter.c b/src/tests/rtstutter.c index fc23d959..d8aff342 100644 --- a/src/tests/rtstutter.c +++ b/src/tests/rtstutter.c @@ -43,24 +43,28 @@ static int msec_lower, msec_upper; static void* work(void *p) PA_GCC_NORETURN; static void* work(void *p) { +#ifdef HAVE_PTHREAD_SETAFFINITY_NP cpu_set_t mask; +#endif struct sched_param param; - pa_log_notice("CPU%i: Created thread.", PA_PTR_TO_INT(p)); + pa_log_notice("CPU%i: Created thread.", PA_PTR_TO_UINT(p)); memset(¶m, 0, sizeof(param)); param.sched_priority = 12; pa_assert_se(pthread_setschedparam(pthread_self(), SCHED_FIFO, ¶m) == 0); +#ifdef HAVE_PTHREAD_SETAFFINITY_NP CPU_ZERO(&mask); - CPU_SET((size_t) PA_PTR_TO_INT(p), &mask); + CPU_SET((size_t) PA_PTR_TO_UINT(p), &mask); pa_assert_se(pthread_setaffinity_np(pthread_self(), sizeof(mask), &mask) == 0); +#endif for (;;) { struct timespec now, end; uint64_t nsec; - pa_log_notice("CPU%i: Sleeping for 1s", PA_PTR_TO_INT(p)); + pa_log_notice("CPU%i: Sleeping for 1s", PA_PTR_TO_UINT(p)); sleep(1); pa_assert_se(clock_gettime(CLOCK_REALTIME, &end) == 0); @@ -69,7 +73,7 @@ static void* work(void *p) { (uint64_t) ((((double) rand())*(double)(msec_upper-msec_lower)*PA_NSEC_PER_MSEC)/RAND_MAX) + (uint64_t) ((uint64_t) msec_lower*PA_NSEC_PER_MSEC); - pa_log_notice("CPU%i: Freezing for %ims", PA_PTR_TO_INT(p), (int) (nsec/PA_NSEC_PER_MSEC)); + pa_log_notice("CPU%i: Freezing for %ims", PA_PTR_TO_UINT(p), (int) (nsec/PA_NSEC_PER_MSEC)); end.tv_sec += (time_t) (nsec / PA_NSEC_PER_SEC); end.tv_nsec += (long int) (nsec % PA_NSEC_PER_SEC); @@ -87,7 +91,7 @@ static void* work(void *p) { } int main(int argc, char*argv[]) { - int n; + unsigned n; srand((unsigned) time(NULL)); @@ -109,7 +113,7 @@ int main(int argc, char*argv[]) { for (n = 1; n < pa_ncpus(); n++) { pthread_t t; - pa_assert_se(pthread_create(&t, NULL, work, PA_INT_TO_PTR(n)) == 0); + pa_assert_se(pthread_create(&t, NULL, work, PA_UINT_TO_PTR(n)) == 0); } work(PA_INT_TO_PTR(0)); -- cgit