#include <kernel>
#include <monitor>
#include <thread>
#include <time>

#define __kick_rate 75000ul
#include "long_tests.h"

#ifndef PREEMPTION_RATE
#error PREEMPTION_RATE not defined in makefile
#endif

Duration default_preemption() {
	return PREEMPTION_RATE;
}

static const unsigned long N  = 2_100_000ul;

monitor mon_t {};
void foo( mon_t & mutex this ) {
	KICK_WATCHDOG;
}

mon_t mon;
thread worker_t {};
void main( worker_t & this ) {
	for( unsigned long i = 0; TEST(i < N); i++ ) {
		foo( mon );
	}
}

int main(int argc, char * argv[] ) {
	processor p;
	{
		worker_t w[7];
	}
}
