[libc-commits] [PATCH] D134095: Implement nanosleep per https://pubs.opengroup.org/onlinepubs/009695399/basedefs/time.h.html

Siva Chandra via Phabricator via libc-commits libc-commits at lists.llvm.org
Mon Sep 19 10:27:16 PDT 2022


sivachandra accepted this revision.
sivachandra added inline comments.
This revision is now accepted and ready to land.


================
Comment at: libc/include/llvm-libc-types/CMakeLists.txt:38
 add_header(struct_tm HDR struct_tm.h)
+add_header(struct_timespec HDR struct_timespec.h)
 add_header(thrd_start_t HDR thrd_start_t.h)
----------------
Since this depends on `time_t.h`, we should add a `DEPENDS .time_t`.


================
Comment at: libc/include/llvm-libc-types/struct_timespec.h:17
+  time_t tv_sec; /* Seconds.  */
+  long tv_nsec;  /* Nanoseconds.  */
+};
----------------
I think this definition is correct as per the POSIX spec. But, since we are passing structures of this shape to the Linux syscall, we should probably add a comment or TODO in `src/time/nanosleep.cpp` explaining why this definition is sufficient or incomplete.


================
Comment at: libc/spec/stdc.td:17
       "assert.h",
       [
           Macro<"static_assert">,
----------------
Can you do the changes in the file separately as an obvious change?


================
Comment at: libc/src/time/mktime.h:1
 //===-- Implementation header of mktime -------------------------*- C++ -*-===//
 //
----------------
Can you make the changes in this file also separately?


================
Comment at: libc/test/src/time/nanosleep_test.cpp:21
+
+TEST(LlvmLibcNanosleep, sleep) {
+  using __llvm_libc::testing::ErrnoSetterMatcher::Succeeds;
----------------
Call it `SmokeTest` may be? Also, move the above comment inside this test block.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134095/new/

https://reviews.llvm.org/D134095



More information about the libc-commits mailing list