#include <pthread.h>
#include <err.h>
#include <stdlib.h>
#include <stdio.h>

static void *foo(void *arg) {
    return arg;
}

int main(int argc, char* argv[]) {
	size_t n = 1000000;
	if( argc > 2 ) return 1;
	if( argc == 2 ) {
		n = atoi(argv[1]);
	}
	printf("%lu\n", n);

	for (size_t i = 0; i < n; i++) {
		pthread_t thread;
		if (pthread_create(&thread, NULL, foo, NULL) < 0) {
			return 1;
		}

		if (pthread_join( thread, NULL) < 0) {
			return 1;
		}
	}
	pthread_exit(NULL);
	return 0;
}