- Imports:
- interface
wasi:io/[email protected]
- interface
wasi:clocks/[email protected]
- interface
wasi:clocks/[email protected]
- interface
wasi:clocks/[email protected]
- interface
Import interface wasi:io/[email protected]
A poll API intended to let users wait for I/O events on multiple handles at once.
pollable
represents a single I/O event which may be ready, or not.
Return the readiness of a pollable. This function never blocks.
Returns true
when the pollable is ready, and false
otherwise.
self
: borrow<pollable
>
block
returns immediately if the pollable is ready, and otherwise
blocks until ready.
This function is equivalent to calling poll.poll
on a list
containing only this pollable.
self
: borrow<pollable
>
Poll for completion on a set of pollables.
This function takes a list of pollables, which identify I/O sources of interest, and waits until one or more of the events is ready for I/O.
The result list<u32>
contains one or more indices of handles in the
argument list that is ready for I/O.
If the list contains more elements than can be indexed with a u32
value, this function traps.
A timeout can be implemented by adding a pollable from the wasi-clocks API to the list.
This function does not return a result
; polling in itself does not
do any I/O so it doesn't fail. If any of the I/O sources identified by
the pollables has an error, it is indicated by marking the source as
being reaedy for I/O.
in
: list<borrow<pollable
>>
Import interface wasi:clocks/[email protected]
WASI单调时钟(Monotonic Clock)是旨在让用户测量运行时间的时钟API。
该API旨在至少在Unix系列平台和Windows之间具有可移植性。
单调时钟是具有未指定初始值的时钟,并且连续读取该时钟将产生非递减值(non-decreasing values)。
时间中的时点(instant),以纳秒(nanoseconds)为单位。 instant与一个未指定的初始值有关, 且仅能与其他相同单调时钟的instant进行比较。
u64
时间中的时长(duration),以纳秒(nanoseconds)为单位。
读取时钟当前值。
时钟是单调的,因此重复调用此函数将产生一系列非递减值。
查询时钟的resolution。 返回与时钟周期(clock tick)对应的时间时长(duration)。
创建一个到达指定时刻(instant)被解析的pollable
。
when
:instant
- own<
pollable
>
创建一个在调用此函数经过指定时长(duration)后被解析的pollable
。
when
:duration
- own<
pollable
>
Import interface wasi:clocks/[email protected]
WASI挂钟(Wall Clock)是旨在让用户查询当前时间的时钟API。 名称“wall”可类比于“clock on the wall(墙上的时钟)”, 它不一定是单调的,因为可能会被重置。
该API旨在至少在Unix系列平台和Windows之间具有可移植性。
挂钟(wall clock)是根据某个外部参考来测量日期和时间的时钟。
外部参考可能会重置,所以此时钟不一定是单调的,因此不适合测量运行时间(elapsed time)。
它旨在向人类报告当前的日期和时间。
时间和日期,以秒(seconds)及纳秒(nanoseconds)为单位。
读取时钟的当前值。
此时钟不是单调的,因此重复调用不一定会产生一系列非递减值。
返回的时间戳(timestamp)表示自1970-01-01T00:00:00Z以来的秒数, 也称为POSIX's Seconds Since the Epoch,或称Unix Time。
输出的nanoseconds字段总是小于1000000000。
查询时钟的resolution。
输出的nanoseconds字段总是小于1000000000。
Import interface wasi:clocks/[email protected]
#### `record timezone-display`
Information useful for displaying the timezone of a specific datetime
.
This information may vary within a single timezone
to reflect daylight
saving time adjustments.
-
utc-offset
:s32
The number of seconds difference between UTC time and the local time of the timezone.
The returned value will always be less than 86400 which is the number of seconds in a day (246060).
In implementations that do not expose an actual time zone, this should return 0.
-
The abbreviated name of the timezone to display to a user. The name `UTC` indicates Coordinated Universal Time. Otherwise, this should reference local standards for the name of the time zone.
In implementations that do not expose an actual time zone, this should be the string
UTC
.In time zones that do not have an applicable name, a formatted representation of the UTC offset may be returned, such as
-04:00
. -
Whether daylight saving time is active.
In implementations that do not expose an actual time zone, this should return false.
Return information needed to display the given datetime
. This includes
the UTC offset, the time zone name, and a flag indicating whether
daylight saving time is active.
If the timezone cannot be determined for the given datetime
, return a
timezone-display
for UTC
with a utc-offset
of 0 and no daylight
saving time.
when
:datetime
The same as display
, but only return the UTC offset.
when
:datetime