]> git.mar77i.info Git - perftrace/commitdiff
use POSIX.1-2024 close master
authormar77i <mar77i@protonmail.ch>
Mon, 23 Mar 2026 22:38:10 +0000 (23:38 +0100)
committermar77i <mar77i@protonmail.ch>
Mon, 23 Mar 2026 22:38:10 +0000 (23:38 +0100)
perftrace.c

index 9a77228016467808be9665a19332317dab380930..9d0cb063d635cfd43dd78eac56e285ade40a475b 100644 (file)
@@ -66,6 +66,19 @@ static inline void get_field_labels(char digits, char *buffer) {
     *ptr = '\0';
 }
 
+static inline int posix_close(int fd) {
+    if (close(fd) == 0)
+        return 0;
+    perror("close");
+    if (errno != EINTR)
+        return -1;
+    if (close(fd) < 0) {
+        perror("close");
+        return -1;
+    }
+    return 0;
+}
+
 static inline int perftrace_collect_details(pid_t pid, struct pid_item *item) {
     struct timespec utime;
     unsigned long ppid = 0;
@@ -130,7 +143,7 @@ static inline int perftrace_collect_details(pid_t pid, struct pid_item *item) {
         fprintf(stderr, "Error: missing state (%s)\n", buffer);
     }
 error:
-    close(fd);
+    posix_close(fd);
     return ret;
 }