[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3-RESEND 20/28] libxl: ocaml: allow device operations to be called asynchronously
On Wed, 2013-11-06 at 11:46 +0000, Rob Hoes wrote: > > On Mon, 2013-10-21 at 14:32 +0100, Rob Hoes wrote: > > > Signed-off-by: Rob Hoes <rob.hoes@xxxxxxxxxx> > > > --- > > > tools/ocaml/libs/xl/genwrap.py | 6 +++--- > > > tools/ocaml/libs/xl/xenlight_stubs.c | 14 +++++++++++--- > > > 2 files changed, 14 insertions(+), 6 deletions(-) > > > > > > diff --git a/tools/ocaml/libs/xl/genwrap.py > > > b/tools/ocaml/libs/xl/genwrap.py index daeffdf..721a336 100644 > > > --- a/tools/ocaml/libs/xl/genwrap.py > > > +++ b/tools/ocaml/libs/xl/genwrap.py > > > @@ -22,9 +22,9 @@ builtins = { > > > "libxl_cpuid_policy_list": ("unit", "%(c)s = 0", > > "Val_unit"), > > > } > > > > > > -DEVICE_FUNCTIONS = [ ("add", ["ctx", "t", "domid", "unit"]), > > > - ("remove", ["ctx", "t", "domid", "unit"]), > > > - ("destroy", ["ctx", "t", "domid", "unit"]), > > > +DEVICE_FUNCTIONS = [ ("add", ["ctx", "t", "domid", > > > "?async:'a", > > "unit", "unit"]), > > > + ("remove", ["ctx", "t", "domid", > > > "?async:'a", "unit", "unit"]), > > > + ("destroy", ["ctx", "t", "domid", > > > "?async:'a", "unit", "unit"]), > > > > I probably don't speak enough ocaml to make heads or tails of it but can you > > include the resulting ocaml type in the changelog? Is it really > > ctx-> t -> ?async -> () -> () > > ? > > > > I guess I don't fully grok "-> ()" if it can chain like that ;-) > > The type of the function is "ctx-> t -> domid -> ?async -> () -> ()". > The last () is the return type. The one before that is the type of the > last argument of the function, which means you always have to call the > function with () at the end. This used to mark "the end" of the > function. It is not allowed in OCaml for functions to have optional > arguments at the end. Ah, yes, someone taught me that once before! [...] > So another option would be to move the ?async argument further to the > left, and skip the extra (), e.g. "ctx -> ?async -> t -> domid -> ()". > But I wanted to keep the async stuff at the end (like in the libxl > function), and adding a () is quite common in OCaml. Right, assuming you are happy that the ordering you have is logical from an ocaml pov (which may differ from libxl/C) it sounds fine to me. Thanks for (re)educating me! Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |