yggdrasil/test.c

29 lines
635 B
C

#include <pthread.h>
#include <assert.h>
#include <stdio.h>
_Thread_local int x = 123;
static void *function(void *arg) {
printf("This is thread %u\n", pthread_self());
printf("argument: %s\n", (const char *) arg);
printf("[child] x = %d\n", x);
x += 1;
printf("[child] x = %d\n", x);
return NULL;
}
int main(int argc, const char **argv) {
pthread_t thread;
printf("[main] &x = %p\n", &x);
printf("[main] x = %d\n", x);
x = 321;
printf("[main] x = %d\n", x);
assert(pthread_create(&thread, NULL, function, (void *) "thread1") == 0);
pthread_join(thread, NULL);
return 0;
}