diff options
Diffstat (limited to 'docs/code/thread-create/main.c')
-rw-r--r-- | docs/code/thread-create/main.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/docs/code/thread-create/main.c b/docs/code/thread-create/main.c new file mode 100644 index 00000000..70224c1e --- /dev/null +++ b/docs/code/thread-create/main.c @@ -0,0 +1,36 @@ +#include <stdio.h> +#include <unistd.h> + +#include <uv.h> + +void hare(void *arg) { + int tracklen = *((int *) arg); + while (tracklen) { + tracklen--; + sleep(1); + fprintf(stderr, "Hare ran another step\n"); + } + fprintf(stderr, "Hare done running!\n"); +} + +void tortoise(void *arg) { + int tracklen = *((int *) arg); + while (tracklen) { + tracklen--; + fprintf(stderr, "Tortoise ran another step\n"); + sleep(3); + } + fprintf(stderr, "Tortoise done running!\n"); +} + +int main() { + int tracklen = 10; + uv_thread_t hare_id; + uv_thread_t tortoise_id; + uv_thread_create(&hare_id, hare, &tracklen); + uv_thread_create(&tortoise_id, tortoise, &tracklen); + + uv_thread_join(&hare_id); + uv_thread_join(&tortoise_id); + return 0; +} |