#include <time.h>
#include <stdio.h>
#include <pthread.h>

void* p_thread_func(void* data)
{
    int* p = (int*)data;
    unsigned i;
    for (i = 0; i < 1000000; i++) {}
    for (i = 0; i < 1000000; i++) {}
    for (i = 0; i < 1000000; i++) {}
    for (i = 0; i < 1000000; i++) {}
    return data;
}


int main(char** args, int argc) {
    int data[20];
    pthread_t thread[20];
    unsigned i;
    for (i = 0; i < 20; i++) {
	int errsv = pthread_create(&thread[i], NULL, p_thread_func, (void*)&data[i]);
	if (errsv) {
	    printf("%d failed with %d: '%s'", i, errsv, strerror(errsv));
	}
    }
    printf("started all\n");
    for (i = 0; i < 20; i++) {
	pthread_join(thread[i], NULL);
    }
    printf("Done\n");

}