On Sun, Aug 20, 2023 at 02:16:24PM +0000, Tage Johansson wrote:
A new field (async_kind) is added to the call data type in
generator/API.ml*. The purpose is to tell if a certain handle call is
an asynchronous command and if so how one can know when it is
completed. The motivation for this is that all asynchronous commands
on the AsyncHandle in the Rust bindings makes use of Rust's
s/makes/make/
[`async
fn`s](https://doc.rust-lang.org/std/keyword.async.html).
But to implement such an async fn, the API needs to know when the
command completed, either by a completion callback or via a change
of state.
---
generator/API.ml | 32 ++++++++++++++++++++++++++++++++
generator/API.mli | 11 +++++++++++
2 files changed, 43 insertions(+)
+++ b/generator/API.mli
@@ -36,6 +36,11 @@ type call = {
{b guaranteed} never to do that we can save a bit of time by
setting this to false. *)
may_set_error : bool;
+ (** There are two types of asynchronous functions, those with a completion
+ callback and those which changes state when completed. This field tells
s/changes/change/
+ if the function is asynchronous and in that case how one can
check if
+ it has completed. *)
+ async_kind : async_kind option;
(** The first stable version that the symbol appeared in, for
example (1, 2) if the symbol was added in development cycle
1.1.x and thus the first stable version was 1.2. This is
@@ -117,6 +122,12 @@ and permitted_state =
not including CLOSED or DEAD *)
| Closed | Dead (** can be called when the handle is
CLOSED or DEAD *)
+and async_kind =
+(** The asynchronous call has a completion callback. *)
+| WithCompletionCallback
+(** The asynchronous call is completed when the given handle call returns the
+ given boolean value. Might for instance be ("aio_is_connected", false).
*)
+| ChangesState of string * bool
and link =
| Link of string (** link to L<nbd_PAGE(3)> *)
| SectionLink of string (** link to L<libnbd(3)/SECTION> *)
--
2.41.0
Grammar changes can be made while merging; no need to respin unless
later patches require more substantive updates.
Reviewed-by: Eric Blake <eblake(a)redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization:
qemu.org |
libguestfs.org