static void pickup(int id, int lunch)
{
- INFO2("Thread %d gets hungry (lunch #%d)", id, lunch);
+ XBT_INFO("Thread %d gets hungry (lunch #%d)", id, lunch);
xbt_mutex_acquire(mutex);
- while (state[(id + (philosopher_amount - 1)) % philosopher_amount] == EATING
- || state[(id + 1) % philosopher_amount] == EATING) {
+ while (state[(id + (philosopher_amount - 1)) % philosopher_amount] ==
+ EATING || state[(id + 1) % philosopher_amount] == EATING) {
xbt_cond_wait(forks[id], mutex);
}
state[id] = EATING;
- xbt_assert1(state[(id + (philosopher_amount - 1)) % philosopher_amount] ==
- THINKING
+ xbt_assert(state[(id + (philosopher_amount - 1)) % philosopher_amount]
+ == THINKING
&& state[(id + 1) % philosopher_amount] == THINKING,
"Philosopher %d eats at the same time that one of its neighbors!!!",
id);
xbt_mutex_release(mutex);
- INFO1("Thread %d eats", id);
+ XBT_INFO("Thread %d eats", id);
}
static void putdown(int id)
{
- INFO1("Thread %d is full", id);
+ XBT_INFO("Thread %d is full", id);
xbt_mutex_acquire(mutex);
state[id] = THINKING;
xbt_cond_signal(forks
xbt_cond_signal(forks[(id + 1) % philosopher_amount]);
xbt_mutex_release(mutex);
- INFO1("Thread %d thinks", id);
+ XBT_INFO("Thread %d thinks", id);
}
/*
xbt_mutex_release(mut_end);
/* Enter an endless loop to test the killing facilities */
- INFO1
- ("Thread %d tries to enter the dead-end; hopefully, the master will cancel it",
- id);
+ XBT_INFO
+ ("Thread %d tries to enter the dead-end; hopefully, the master will cancel it",
+ id);
xbt_mutex_acquire(dead_end);
- INFO1("Oops, thread %d reached the dead-end. Cancelation failed", id);
+ XBT_INFO("Oops, thread %d reached the dead-end. Cancelation failed", id);
}
int philosopher(int argc, char *argv[]);
xbt_thread_t *philosophers;
gras_init(&argc, argv);
- xbt_assert0(argc >= 2,
+ xbt_assert(argc >= 2,
"This program expects one argument (the amount of philosophers)");
/* initializations of the philosopher mecanisms */
dead_end = xbt_mutex_init();
xbt_mutex_acquire(dead_end);
- INFO2("Spawn the %d threads (%d lunches scheduled)", philosopher_amount,
+ XBT_INFO("Spawn the %d threads (%d lunches scheduled)", philosopher_amount,
lunch_amount);
/* spawn threads */
for (i = 0; i < philosopher_amount; i++) {
char *name = bprintf("thread %d", i);
- philosophers[i] = xbt_thread_create(name, philo_thread, &id[i],0/*not joinable*/);
+ philosophers[i] =
+ xbt_thread_create(name, philo_thread, &id[i],
+ 0 /*not joinable */ );
free(name);
}
xbt_cond_wait(cond_end, mut_end);
xbt_mutex_release(mut_end);
- INFO0("Cancel all childs");
+ XBT_INFO("Cancel all childs");
/* nuke them threads */
for (i = 0; i < philosopher_amount; i++) {
xbt_thread_cancel(philosophers[i]);