#include <stdio.h>
#include <stdlib.h>
#include <parlib/parlib.h>
#include <parlib/vcore.h>
#include <futex.h>
#include <pthread.h>

#define NUM_THREADS 10
pthread_t thandlers[NUM_THREADS];

void *handler(void *arg) {
	int id = pthread_self()->id;
	int var = 0;
    struct timespec timeout = {
		.tv_sec = id,
		.tv_nsec = 0
	};
	printf("Begin thread: %d\n", id);
    futex(&var, FUTEX_WAIT, 0, &timeout, NULL, 0);
	printf("End thread: %d\n", id);
	return 0;
}

int main(int argc, char **argv)
{
	for (int i=0; i<NUM_THREADS; i++) {
		pthread_create(&thandlers[i], NULL, &handler, NULL);
	}
	for (int i=0; i<NUM_THREADS; i++) {
		pthread_join(thandlers[i], NULL);
	}
	return 0;
}
