aboutsummaryrefslogtreecommitdiff
path: root/philo
diff options
context:
space:
mode:
authorDominik Kaiser2025-01-18 12:50:55 +0100
committerDominik Kaiser2025-01-18 12:50:55 +0100
commit56afbb3011c346dfc0d9e6d92e76cb13fdb272c8 (patch)
treeff786f412a8ed2fd4cba316dcf11220fdf956046 /philo
parente3c8f02a98c2cbf73266bf232c0fb38e48adcd06 (diff)
downloadPhilosophers-56afbb3011c346dfc0d9e6d92e76cb13fdb272c8.tar.gz
Philosophers-56afbb3011c346dfc0d9e6d92e76cb13fdb272c8.zip
Add ft_log func
Diffstat (limited to 'philo')
-rw-r--r--philo/include/ft_utils.h4
-rw-r--r--philo/include/philo.h3
-rw-r--r--philo/src/ft_utils.c12
-rw-r--r--philo/src/simulation.c10
4 files changed, 21 insertions, 8 deletions
diff --git a/philo/include/ft_utils.h b/philo/include/ft_utils.h
index 3c9bd69..4000815 100644
--- a/philo/include/ft_utils.h
+++ b/philo/include/ft_utils.h
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/01/17 11:57:44 by dkaiser #+# #+# */
-/* Updated: 2025/01/17 12:39:17 by dkaiser ### ########.fr */
+/* Updated: 2025/01/18 12:47:25 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -15,6 +15,7 @@
# include <stdlib.h>
# include <stdio.h>
+# include <sys/time.h>
/*
** Prints error message and returns EXIT_FAILURE
@@ -26,4 +27,5 @@ int ft_err(const char *str);
*/
int ft_atoi(const char *str);
+void ft_log(int id, const char *str);
#endif
diff --git a/philo/include/philo.h b/philo/include/philo.h
index 9566136..308857b 100644
--- a/philo/include/philo.h
+++ b/philo/include/philo.h
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/01/17 10:23:19 by dkaiser #+# #+# */
-/* Updated: 2025/01/18 11:36:45 by dkaiser ### ########.fr */
+/* Updated: 2025/01/18 12:46:42 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -17,7 +17,6 @@
# include <stdlib.h>
# include <stdio.h>
# include <pthread.h>
-# include <sys/time.h>
# include "ft_utils.h"
# define ERR_USAGE "Usage: <nbr_of_philos> <ttd> <tte> <tts> [times_must_eat]"
diff --git a/philo/src/ft_utils.c b/philo/src/ft_utils.c
index 9eb660a..7570b1d 100644
--- a/philo/src/ft_utils.c
+++ b/philo/src/ft_utils.c
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/01/17 11:57:11 by dkaiser #+# #+# */
-/* Updated: 2025/01/17 11:59:28 by dkaiser ### ########.fr */
+/* Updated: 2025/01/18 12:47:38 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -18,6 +18,16 @@ int ft_err(const char *str)
return (EXIT_FAILURE);
}
+void ft_log(int id, const char *str)
+{
+ int timestamp_in_ms;
+ struct timeval t;
+
+ gettimeofday(&t, NULL);
+ timestamp_in_ms = (t.tv_sec * 1000) + (t.tv_usec / 1000);
+ printf("%d %d %s\n", timestamp_in_ms, id, str);
+}
+
int ft_atoi(const char *str)
{
int result;
diff --git a/philo/src/simulation.c b/philo/src/simulation.c
index 54ac8e5..3035385 100644
--- a/philo/src/simulation.c
+++ b/philo/src/simulation.c
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/01/17 14:38:04 by dkaiser #+# #+# */
-/* Updated: 2025/01/18 12:41:31 by dkaiser ### ########.fr */
+/* Updated: 2025/01/18 12:49:42 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -26,8 +26,10 @@ void philo_eat(t_philo *philo)
pthread_mutex_lock(&left_fork->mutex);
pthread_mutex_lock(&right_fork->mutex);
left_fork->available = 0;
+ ft_log(philo->id, "has taken a fork");
right_fork->available = 0;
- printf("Philo %d is eating\n", philo->id);
+ ft_log(philo->id, "has taken a fork");
+ ft_log(philo->id, "is eating");
usleep(1000000);
left_fork->available = 1;
right_fork->available = 1;
@@ -37,13 +39,13 @@ void philo_eat(t_philo *philo)
void philo_sleep(t_philo *philo)
{
- printf("Philo %d is sleeping\n", philo->id);
+ ft_log(philo->id, "is sleeping");
usleep(1000000);
}
void philo_think(t_philo *philo)
{
- printf("Philo %d is thinking\n", philo->id);
+ ft_log(philo->id, "is thinking");
}
int *process_philo(void *arg)