/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* time.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: cchauvet #include #include #include #include "./philo.h" #include "data.h" size_t get_time(void) { size_t time; static size_t start_time = 0; struct timeval tv; gettimeofday(&tv, NULL); time = tv.tv_sec * 1000000 + tv.tv_usec; if (start_time == 0) start_time = time; return ((time - start_time) / 1000); } size_t get_time_eat(t_philo *philo, t_data *data) { size_t time; time = get_time(); if (time + data->eat_time > data->life_expectency + philo->last_eat) return (data->life_expectency + philo->last_eat - time); return (data->eat_time); } size_t get_time_sleep(t_philo *philo, t_data *data) { size_t time; time = get_time(); if (time + data->sleep_time > data->life_expectency + philo->last_eat) return (data->life_expectency + philo->last_eat - time); return (data->sleep_time); }