方法
GioSocketcondition_timed_wait
since: 2.32
声明 [src]
gboolean
g_socket_condition_timed_wait (
GSocket* socket,
GIOCondition condition,
gint64 timeout_us,
GCancellable* cancellable,
GError** error
)
描述 [src]
等待最多 timeout_us
纳秒,直到在 socket
上 condition
变为真。如果条件满足,则返回 TRUE
。
如果在此条件满足之前取消 cancellable
,或者如果在此条件满足之前达到 timeout_us
(或套接字的 GSocket:timeout
),则返回 FALSE
,并且如果非 NULL
,则将 error
设置为适当的值(G_IO_ERROR_CANCELLED
或 G_IO_ERROR_TIMED_OUT
)。
如果您不想设置超时,请使用 g_socket_condition_wait()。另可传递 -1 给 timeout_us
。
注意,尽管 timeout_us
以微秒为单位,以保持与其他 GLib API 的一致性,但此函数实际上只具有毫秒级别的分辨率。如果 timeout_us
不是完全的毫秒数,则其行为是未定义的。
提供自:2.32
参数
condition
-
类型:
GIOCondition
一个等待的
GIOCondition
掩码。 timeout_us
-
类型:
gint64
等待的最大时间(微秒),或 -1。
cancellable
-
类型:
GCancellable
一个
GCancellable
或NULL
。该参数可以是 NULL
。数据由方法调用者拥有。 error
-
类型:
GError **
用于可恢复错误的返回位置。
该参数可以是 NULL
。如果返回位置不是 NULL
,则必须将其初始化为空GError*
。如果没有错误,该方法将保留初始化为 NULL
。在出错的情况下,该参数将被设置为新颖分配的 GError
;调用者将负责数据的所有权和释放。