@@ -37,7 +37,7 @@ void swift_get_time(
3737 clock_gettime (CLOCK_BOOTTIME, &continuous);
3838 *seconds = continuous.tv_sec ;
3939 *nanoseconds = continuous.tv_nsec ;
40- #elif defined(__APPLE__) && HAS_TIME
40+ #elif ( defined(__APPLE__) || defined(__wasi__) ) && HAS_TIME
4141 struct timespec continuous;
4242 clock_gettime (CLOCK_MONOTONIC, &continuous);
4343 *seconds = continuous.tv_sec ;
@@ -71,6 +71,11 @@ void swift_get_time(
7171 clock_gettime (CLOCK_UPTIME_RAW, &suspending);
7272 *seconds = suspending.tv_sec ;
7373 *nanoseconds = suspending.tv_nsec ;
74+ #elif defined(__wasi__) && HAS_TIME
75+ struct timespec suspending;
76+ clock_gettime (CLOCK_MONOTONIC, &suspending);
77+ *seconds = suspending.tv_sec ;
78+ *nanoseconds = suspending.tv_nsec ;
7479#elif defined(_WIN32)
7580 LARGE_INTEGER freq;
7681 QueryPerformanceFrequency (&freq);
@@ -105,7 +110,7 @@ switch (clock_id) {
105110 clock_getres (CLOCK_BOOTTIME, &continuous);
106111 *seconds = continuous.tv_sec ;
107112 *nanoseconds = continuous.tv_nsec ;
108- #elif defined(__APPLE__) && HAS_TIME
113+ #elif ( defined(__APPLE__) || defined(__wasi__) ) && HAS_TIME
109114 struct timespec continuous;
110115 clock_getres (CLOCK_MONOTONIC, &continuous);
111116 *seconds = continuous.tv_sec ;
@@ -128,6 +133,10 @@ switch (clock_id) {
128133 clock_gettime (CLOCK_UPTIME_RAW, &suspending);
129134 *seconds = suspending.tv_sec ;
130135 *nanoseconds = suspending.tv_nsec ;
136+ #elif defined(__wasi__) && HAS_TIME
137+ clock_getres (CLOCK_MONOTONIC, &suspending);
138+ *seconds = suspending.tv_sec ;
139+ *nanoseconds = suspending.tv_nsec ;
131140#elif defined(_WIN32)
132141 *seconds = 0 ;
133142 *nanoseconds = 1000 ;
0 commit comments