#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;
}
