#include #include #include #include #include #include #include #include "thread.h" /* test de validation de la pré-emption (et par effet de bord de certaines implémentation de priorités) * * valgrind doit etre content. * La durée du programme doit etre proportionnelle au nombre de threads donnés en argument. * L'affichage doit être une série d'id alternée dans un ordre plus ou * moin aléatoire, et non une suite de 0, puis de 1, puis de 2, ... * * support nécessaire: * - thread_create() * - retour sans thread_exit() * - thread_join() sans récupération de la valeur de retour */ #define NB_ITER 100 #define ITER_LENGTH 1000000 static int fini = 0; static double score = 0; static long *values = NULL; static void * thfunc( void *arg ) { unsigned long i, j = 0; int me = (intptr_t)arg; for(i=0; i