+ time.tv_usec - start.tv_usec);
}
+int is_alive(t_philo *philo)
+{
+ int res;
+
+ sem_wait(philo->philo_sem);
+ res = philo->lives;
+ sem_post(philo->philo_sem);
+ return (res);
+}
+
void print_timestamp(t_philo *philo, const char *str)
{
- sem_wait(philo->semaphores[term]);
- printf("%u %u %s\n", usecs_since_start(philo->settings.start)
- / 1000, philo->id, str);
- sem_post(philo->semaphores[term]);
+ if (is_alive(philo))
+ {
+ sem_wait(philo->semaphores[term]);
+ printf("%u %u %s\n", usecs_since_start(philo->settings.start)
+ / 1000, philo->id, str);
+ sem_post(philo->semaphores[term]);
+ }
return ;
}
useconds_t usecs_since_start(struct timeval start);
int report(t_philo *philo, const char *str);
+int is_alive(t_philo *philo);
void print_timestamp(t_philo *philo, const char *str);
void be_a_philosopher(t_philo *philo);