30 lines
662 B
C
30 lines
662 B
C
#include <pthread.h>
|
|
#include <assert.h>
|
|
#include <stdio.h>
|
|
#include <sys/yggdrasil.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;
|
|
}
|