@@ -37,7 +37,7 @@ void swift_get_time(
37
37
clock_gettime (CLOCK_BOOTTIME, &continuous);
38
38
*seconds = continuous.tv_sec ;
39
39
*nanoseconds = continuous.tv_nsec ;
40
- #elif defined(__APPLE__) && HAS_TIME
40
+ #elif ( defined(__APPLE__) || defined(__wasi__) ) && HAS_TIME
41
41
struct timespec continuous;
42
42
clock_gettime (CLOCK_MONOTONIC, &continuous);
43
43
*seconds = continuous.tv_sec ;
@@ -71,6 +71,11 @@ void swift_get_time(
71
71
clock_gettime (CLOCK_UPTIME_RAW, &suspending);
72
72
*seconds = suspending.tv_sec ;
73
73
*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 ;
74
79
#elif defined(_WIN32)
75
80
LARGE_INTEGER freq;
76
81
QueryPerformanceFrequency (&freq);
@@ -105,7 +110,7 @@ switch (clock_id) {
105
110
clock_getres (CLOCK_BOOTTIME, &continuous);
106
111
*seconds = continuous.tv_sec ;
107
112
*nanoseconds = continuous.tv_nsec ;
108
- #elif defined(__APPLE__) && HAS_TIME
113
+ #elif ( defined(__APPLE__) || defined(__wasi__) ) && HAS_TIME
109
114
struct timespec continuous;
110
115
clock_getres (CLOCK_MONOTONIC, &continuous);
111
116
*seconds = continuous.tv_sec ;
@@ -128,6 +133,10 @@ switch (clock_id) {
128
133
clock_gettime (CLOCK_UPTIME_RAW, &suspending);
129
134
*seconds = suspending.tv_sec ;
130
135
*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 ;
131
140
#elif defined(_WIN32)
132
141
*seconds = 0 ;
133
142
*nanoseconds = 1000 ;
0 commit comments