55 lines
1.6 KiB
C
55 lines
1.6 KiB
C
/* ************************************************************************** */
|
|
/* */
|
|
/* ::: :::::::: */
|
|
/* time.c :+: :+: :+: */
|
|
/* +:+ +:+ +:+ */
|
|
/* By: mdenys <mdenys@student.21-school.ru> +#+ +:+ +#+ */
|
|
/* +#+#+#+#+#+ +#+ */
|
|
/* Created: 2021/05/18 21:17:42 by mdenys #+# #+# */
|
|
/* Updated: 2021/05/18 21:17:43 by mdenys ### ########.fr */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
|
|
#include "../includes/philo_header.h"
|
|
|
|
time_t ft_get_time(void)
|
|
{
|
|
time_t return_value;
|
|
struct timeval current_time;
|
|
|
|
gettimeofday(¤t_time, NULL);
|
|
return_value = (current_time.tv_sec * 1000) + (current_time.tv_usec / 1000);
|
|
return (return_value);
|
|
}
|
|
|
|
void ft_msleep(time_t interval_ms)
|
|
{
|
|
time_t end_ms;
|
|
time_t now_ms;
|
|
|
|
end_ms = ft_get_time() + interval_ms;
|
|
now_ms = ft_get_time();
|
|
while (now_ms < end_ms)
|
|
{
|
|
usleep(_SLEEP_STEP);
|
|
now_ms = ft_get_time();
|
|
}
|
|
}
|
|
|
|
long get_time(void)
|
|
{
|
|
struct timeval time;
|
|
|
|
gettimeofday(&time, NULL);
|
|
return ((long)(time.tv_sec * 1000 + time.tv_usec / 1000));
|
|
}
|
|
|
|
void my_usleep(long time)
|
|
{
|
|
long t;
|
|
|
|
t = get_time();
|
|
while (get_time() - t < time)
|
|
usleep(1);
|
|
}
|