From 5d7d4cdf531234390055540dc4ccc478268b0588 Mon Sep 17 00:00:00 2001 From: comex Date: Thu, 29 Jan 2015 01:48:09 -0500 Subject: get rid of the unnecessary CoreFoundation dependency --- test/test-stop-threads.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'test/test-stop-threads.c') diff --git a/test/test-stop-threads.c b/test/test-stop-threads.c index 829e73e..d53d8cd 100644 --- a/test/test-stop-threads.c +++ b/test/test-stop-threads.c @@ -4,15 +4,22 @@ #include #include #include +/* printf without taking any locks - because they might be taken at stop time */ +#define ulprintf(...) do { \ + char buf[256]; \ + int len = sprintf(buf, __VA_ARGS__); \ + write(1, buf, len); \ +} while(0) + static void *some_thread(void *ip) { long i = (long) ip; while (1) { - printf("Hello from %ld\n", i); + ulprintf("Hello from %ld\n", i); sleep(1); } } static void replacement() { - printf("Bye\n"); + ulprintf("Bye\n"); pthread_exit(NULL); } static uintptr_t patch_callback(void *ctx, UNUSED uintptr_t pc) { @@ -26,9 +33,13 @@ int main() { pthread_create(&pts[i], NULL, some_thread, (void *) i); sleep(1); void *stop_token; + ulprintf("stopping\n"); assert(!stop_other_threads(&stop_token)); + ulprintf("stopped\n"); assert(!apply_pc_patch_callback(stop_token, patch_callback, NULL)); + ulprintf("resuming\n"); assert(!resume_other_threads(stop_token)); + ulprintf("resumed\n"); void *out; for (long i = 0; i < 10; i++) assert(!pthread_join(pts[i], &out)); -- cgit v1.2.3