@@ -42,7 +42,7 @@ void swift_get_time(
4242 clock_gettime (CLOCK_MONOTONIC_RAW, &continuous);
4343 *seconds = continuous.tv_sec ;
4444 *nanoseconds = continuous.tv_nsec ;
45- #elif defined(__OpenBSD__) && HAS_TIME
45+ #elif ( defined(__OpenBSD__) || defined(__wasi__) ) && HAS_TIME
4646 struct timespec continuous;
4747 clock_gettime (CLOCK_MONOTONIC, &continuous);
4848 *seconds = continuous.tv_sec ;
@@ -76,6 +76,11 @@ void swift_get_time(
7676 clock_gettime (CLOCK_UPTIME_RAW, &suspending);
7777 *seconds = suspending.tv_sec ;
7878 *nanoseconds = suspending.tv_nsec ;
79+ #elif defined(__wasi__) && HAS_TIME
80+ struct timespec suspending;
81+ clock_gettime (CLOCK_MONOTONIC, &suspending);
82+ *seconds = suspending.tv_sec ;
83+ *nanoseconds = suspending.tv_nsec ;
7984#elif defined(__OpenBSD__) && HAS_TIME
8085 struct timespec suspending;
8186 clock_gettime (CLOCK_UPTIME, &suspending);
@@ -121,7 +126,7 @@ switch (clock_id) {
121126 clock_getres (CLOCK_MONOTONIC_RAW, &continuous);
122127 *seconds = continuous.tv_sec ;
123128 *nanoseconds = continuous.tv_nsec ;
124- #elif defined(__OpenBSD__) && HAS_TIME
129+ #elif ( defined(__OpenBSD__) || defined(__wasi__) ) && HAS_TIME
125130 struct timespec continuous;
126131 clock_getres (CLOCK_MONOTONIC, &continuous);
127132 *seconds = continuous.tv_sec ;
@@ -144,6 +149,10 @@ switch (clock_id) {
144149 clock_getres (CLOCK_UPTIME_RAW, &suspending);
145150 *seconds = suspending.tv_sec ;
146151 *nanoseconds = suspending.tv_nsec ;
152+ #elif defined(__wasi__) && HAS_TIME
153+ clock_getres (CLOCK_MONOTONIC, &suspending);
154+ *seconds = suspending.tv_sec ;
155+ *nanoseconds = suspending.tv_nsec ;
147156#elif defined(__OpenBSD__) && HAS_TIME
148157 clock_getres (CLOCK_UPTIME, &suspending);
149158 *seconds = suspending.tv_sec ;
0 commit comments