clean time type
authorLaurent MAZET <laurent.mazet@thalesgroup.com>
Mon, 29 Sep 2025 14:00:32 +0000 (16:00 +0200)
committerLaurent MAZET <laurent.mazet@thalesgroup.com>
Mon, 29 Sep 2025 14:00:32 +0000 (16:00 +0200)
mq.c
mtime.h
mutex.c
pipe.c
semaphore.c
stat.h
test.c
test.h
thread.c

diff --git a/mq.c b/mq.c
index b29fd90f43d877e62cc2625c2efcfa8d864f76aa..9c0b93413072aacb279bc3233d4b1b15de032ab2 100644 (file)
--- a/mq.c
+++ b/mq.c
@@ -24,22 +24,28 @@ int nb_measurements = 0;
 
 char *message = "message queue";
 
-mqd_t mq = 0;
-
 #define MAXBUF 1024
 
-sec_t receiver (void)
+sec_t ping (mqd_t mq)
 {
 
-    printf ("Waiting for data...\n");
+    printf ("Sending ping...\n");
     for (int i = 0; i < nb_measurements; i++) {
+
+        char buffer[MAXBUF] = { 0 };
+        sprintf (buffer, "ping %d", i);
+
         mtime_t ts1;
         sys_timestamp (&ts1);
 
-        char buffer[MAXBUF] = { 0 };
-        int m = mq_receive (mq, buffer, sizeof(buffer), NULL);
-        if (m == -1) {
-            fprintf (stderr, "error: mq_receive (%d)\n", i);
+        if (mq_send (mq, buffer, strlen (buffer) + 1, 0) == -1) {
+            fprintf (stderr, "ping error: mq_send (%d)\n", i);
+            return none_e;
+        }
+        //printf ("send '%s'\n", buffer);
+
+        if (mq_receive (mq, buffer, sizeof(buffer), NULL) == -1) {
+            fprintf (stderr, "ping error: mq_receive (%d)\n", i);
             return none_e;
         }
         //printf ("receive '%s'\n", buffer);
@@ -52,18 +58,22 @@ sec_t receiver (void)
     return nsec_e;
 }
 
-sec_t sender (void)
+sec_t pong (mqd_t mq)
 {
 
-    printf ("Sending data...\n");
+    printf ("Responding pong...\n");
     for (int i = 0; i < nb_measurements; i++) {
 
-        char buffer[32] = { 0 };
-        sprintf (buffer, "hello world %d", i);
+        char buffer[MAXBUF] = { 0 };
+
+        if (mq_receive (mq, buffer, sizeof(buffer), NULL) == -1) {
+            fprintf (stderr, "pong error: mq_receive (%d)\n", i);
+            return none_e;
+        }
+        //printf ("receive '%s'\n", buffer);
 
-        int m = mq_send (mq, buffer, strlen (buffer) + 1, 0);
-        if (m == -1) {
-            fprintf (stderr, "error: mq_send (%d)\n", i);
+        if (mq_send (mq, buffer, strlen (buffer) + 1, 0) == -1) {
+            fprintf (stderr, "pong error: mq_send (%d)\n", i);
             return none_e;
         }
         //printf ("send '%s'\n", buffer);
@@ -72,7 +82,7 @@ sec_t sender (void)
     return usec_e;
 }
 
-sec_t test (int64_t *buffer, int nb)
+sec_t test (unsigned int *buffer, int nb)
 {
 
     /* set global variables */
@@ -88,7 +98,7 @@ sec_t test (int64_t *buffer, int nb)
     attr.mq_msgsize = MAXBUF;
     attr.mq_curmsgs = 0;
 
-    mq = mq_open ("/test_queue", O_CREAT | O_RDWR, 0644, &attr);
+    mqd_t mq = mq_open ("/test_queue", O_CREAT | O_RDWR, 0644, &attr);
     if (mq == -1) {
         fprintf (stderr, "error: mq_open\n");
         return none_e;
@@ -99,12 +109,12 @@ sec_t test (int64_t *buffer, int nb)
         fprintf (stderr, "error: fork\n");
         return none_e;
     } else if (pid == 0) {
-        sender ();
+        pong (mq);
         mq_close (mq);
         exit (0);
     }
 
-    sec_t rc = receiver ();
+    sec_t rc = ping (mq);
     mq_close (mq);
 
     if (kill (pid, SIGTERM) == 0) {
diff --git a/mtime.h b/mtime.h
index aedd6ffd6c74f9cf9cae38b105f5e91624e2323d..c07168f91e23aab0f7540f4a26a8f99ac8541d35 100644 (file)
--- a/mtime.h
+++ b/mtime.h
@@ -3,7 +3,7 @@
 #ifndef __MTIME_H__
 #define __MTIME_H__
 
-#include "inttypes.h"
+#include <time.h>
 
 typedef unsigned int mstime_t;
 
diff --git a/mutex.c b/mutex.c
index 3701b74a6401748c9819d3070b2e21707d4865e2..001feab21700ebd88305c31a9ae19faa74c5806f 100644 (file)
--- a/mutex.c
+++ b/mutex.c
@@ -47,7 +47,7 @@ void *mutex_taker_task (__attribute__((unused)) void *arg)
     pthread_exit (NULL);
 }
 
-sec_t test (int64_t *buffer, int nb)
+sec_t test (unsigned int *buffer, int nb)
 {
 
     /* set global variables */
diff --git a/pipe.c b/pipe.c
index f1c7e00544d5b264f1374bd2d1b48bd609dcafdc..74f15cd67672648f88a9f5916b71355ca57a7d84 100644 (file)
--- a/pipe.c
+++ b/pipe.c
@@ -22,49 +22,63 @@ char *message = "pipe";
 
 #define MAXBUF 1024
 
-sec_t receiver (int fd)
+sec_t ping (int fdin, int fdout)
 {
 
-    printf ("Waiting for data...\n");
+    printf ("Sending ping...\n");
     for (int i = 0; i < nb_measurements; i++) {
+
+        char buffer[MAXBUF] = { 0 };
+        sprintf (buffer, "ping %d", i);
+
         mtime_t ts1;
         sys_timestamp (&ts1);
 
-        char buffer[MAXBUF] = { 0 };
-        if (read (fd, buffer, sizeof(buffer)) == -1) {
-            fprintf (stderr, "error: read (%d)\n", i);
+        if (write (fdout, buffer, strlen (buffer) + 1) == -1) {
+            fprintf (stderr, "ping error: write (%d)\n", i);
+            return none_e;
+        }
+        //printf ("write '%s'\n", buffer);
+
+        if (read (fdin, buffer, sizeof(buffer)) == -1) {
+            fprintf (stderr, "ping error: read (%d)\n", i);
             return none_e;
         }
-        //printf ("receive '%s'\n", buffer);
+        //printf ("read '%s'\n", buffer);
 
         mtime_t ts2;
         sys_timestamp (&ts2);
         deltas[i] = diff_timestamp (&ts2, &ts1);
     }
 
-    return usec_e;
+    return nsec_e;
 }
 
-sec_t sender (int fd)
+sec_t pong (int fdin, int fdout)
 {
 
-    printf ("Sending data...\n");
+    printf ("Responding pong...\n");
     for (int i = 0; i < nb_measurements; i++) {
 
-        char buffer[32] = { 0 };
-        sprintf (buffer, "hello world %d", i);
+        char buffer[MAXBUF] = { 0 };
 
-        if (write (fd, buffer, strlen (buffer) + 1) == -1) {
-            fprintf (stderr, "error: write (%d)\n", i);
+        if (read (fdin, buffer, sizeof(buffer)) == -1) {
+            fprintf (stderr, "ping error: read (%d)\n", i);
             return none_e;
         }
-        //printf ("send '%s'\n", buffer);
+        //printf ("read '%s'\n", buffer);
+
+        if (write (fdout, buffer, strlen (buffer) + 1) == -1) {
+            fprintf (stderr, "ping error: write (%d)\n", i);
+            return none_e;
+        }
+        //printf ("write '%s'\n", buffer);
     }
 
     return usec_e;
 }
 
-sec_t test (int64_t *buffer, int nb)
+sec_t test (unsigned int *buffer, int nb)
 {
 
     /* set global variables */
@@ -86,15 +100,15 @@ sec_t test (int64_t *buffer, int nb)
         fprintf (stderr, "error: fork\n");
         return none_e;
     } else if (pid == 0) {
+        pong (pipefd[0], pipefd[1]);
         close (pipefd[0]);
-        sender (pipefd[1]);
         close (pipefd[1]);
         exit (0);
     }
 
-    close (pipefd[1]);
-    sec_t rc = receiver (pipefd[0]);
+    sec_t rc = ping (pipefd[0], pipefd[1]);
     close (pipefd[0]);
+    close (pipefd[1]);
 
     if (kill (pid, SIGTERM) == 0) {
         int wstatus;
index 6c2fecc5515993260ac3c363df11437cacf58afb..5aff4723bbdfa6e2f4fad65f1f0c45e7915bc2cd 100644 (file)
@@ -44,7 +44,7 @@ void* trythis (__attribute__((unused)) void *arg)
     return NULL;
 }
 
-sec_t test (int64_t *buffer, int nb)
+sec_t test (unsigned int *buffer, int nb)
 {
 
     /* set global variables */
diff --git a/stat.h b/stat.h
index bb51d07ab4eb826701288cabbdf4e338981c5ed1..82880a627d0e7765dc5f6f620a7001213c42187c 100644 (file)
--- a/stat.h
+++ b/stat.h
@@ -3,8 +3,6 @@
 #ifndef __STAT_H__
 #define __STAT_H__
 
-#include <inttypes.h>
-
-void compute_statistics (int64_t *points, int nb, int bins);
+void compute_statistics (unsigned int *points, int nb, int bins);
 
 #endif /* __STAT_H__ */
diff --git a/test.c b/test.c
index d7847f5dba0cb41b8f85304ffd4f1bf58a37e458..f91ec7a2814c44381021ecda279253d2ceffd44b 100644 (file)
--- a/test.c
+++ b/test.c
@@ -1,5 +1,4 @@
 #include <assert.h>
-#include <inttypes.h>
 #include <sched.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -137,7 +136,7 @@ int main (int argc, char *argv[])
 
     /* main process */
 
-    int64_t *buffer = (int64_t *) calloc (nb, sizeof (int64_t));
+    unsigned int *buffer = (unsigned int *) calloc (nb, sizeof (unsigned int));
     assert (buffer);
 
     printf ("Test: %s\n", (message) ? message : "unknown");
@@ -155,7 +154,7 @@ int main (int argc, char *argv[])
         FILE *fd = fopen (output, "w");
         assert (fd);
         for (int i = 0; i < nb; i++) {
-            fprintf (fd, "%ld\n", buffer[i]);
+            fprintf (fd, "%d\n", buffer[i]);
         }
         fclose (fd);
     }
@@ -174,7 +173,7 @@ int main (int argc, char *argv[])
                 int change_done = 0;
                 for (int i = 1; i < nb - 1; i++) {
                     if (buffer[i + 1] < buffer[i]) {
-                        int64_t tmp = buffer[i];
+                        unsigned int tmp = buffer[i];
                         buffer[i] = buffer[i + 1];
                         buffer[i + 1] = tmp;
                         change_done = 1;
@@ -186,7 +185,7 @@ int main (int argc, char *argv[])
             }
             int n = nb * abe_per / 100;
             for (int i = 0; i < nb - n; i++) {
-                buffer[i] = buffer[i - n / 2];
+                buffer[i] = buffer[i + n / 2];
             }
             nb -= n;
         }
diff --git a/test.h b/test.h
index 18b0fcc34534c23921c3306381075ede40683354..2e3847305ecf382010624bd10396b1faa1ceb400 100644 (file)
--- a/test.h
+++ b/test.h
@@ -3,8 +3,6 @@
 #ifndef __TEST_H__
 #define __TEST_H__
 
-#include <inttypes.h>
-
 typedef enum {
     none_e = 0,
     sec_e,
@@ -13,6 +11,6 @@ typedef enum {
     nsec_e
 } sec_t;
 
-sec_t test (int64_t *buffer, int nb);
+sec_t test (unsigned int *buffer, int nb);
 
 #endif /* __TEST_H__ */
index 2f6c172bdbc49f5f8bcdb7fabfc633885dd148ea..be55b7451683d652707846fbe8ac715edf7c4b9f 100644 (file)
--- a/thread.c
+++ b/thread.c
@@ -20,7 +20,7 @@ void* dummy_thread(void *arg) {
     return NULL;
 }
 
-sec_t test (int64_t *buffer, int nb)
+sec_t test (unsigned int *buffer, int nb)
 {
 
     /* set global variables */