Displaying 20 results from an estimated 33 matches for "aio_pread_callback".
2019 Aug 13
2
Re: [PATCH libnbd 5/6] generator: Implement OClosure.
On 8/13/19 5:06 AM, Richard W.M. Jones wrote:
> An optional Closure parameter, but otherwise works the same way as
> Closure.
> @@ -3778,6 +3777,7 @@ let generate_lib_api_c () =
> ) args;
> List.iter (
> function
> + | OClosure { cbname } -> pr ", %s_callback ? \"<fun>\" : \"NULL\"" cbname
Well, it also permits a
2019 Aug 13
0
Re: [PATCH libnbd 5/6] generator: Implement OClosure.
...al
> case for when the user omitted the optional argument and we thus...
Yeah I'm not sure about this, plus we don't have any test coverage of
it. But it doesn't work ...
$ nbdkit null --run './run nbdsh --connect nbd://localhost -c "buf = nbd.Buffer(512)" -c "h.aio_pread_callback (buf, 0)"'
Traceback (most recent call last):
File "/usr/lib64/python3.7/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib64/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/rjones...
2019 Aug 13
1
Re: [PATCH libnbd] api: Rename nbd_aio_*_callback to nbd_aio_*.
..._aio_*
>
> (2) Any existing call to nbd_aio_* must have two extra NULL parameters
> added before the final flags parameter.
>
> In non-C languages, only change (1) is required.
It is still possible to compile for 0.9.6 and this patch simultaneously,
by checking LIBNBD_HAVE_NBD_AIO_PREAD_CALLBACK as a witness of which API
style to use (although it's also just as easy to bump minimum version
requirements to 0.9.7, once we have a release including this and any
other API changes being discussed...).
> +++ b/docs/libnbd.pod
> @@ -276,9 +276,8 @@ command has completed:
> }
>...
2019 Aug 13
0
[PATCH libnbd 6/6] lib: Make all completion callbacks into OClosures.
.../tests/test_590_aio_copy.ml | 5 +--
4 files changed, 30 insertions(+), 28 deletions(-)
diff --git a/generator/generator b/generator/generator
index 3add9a4..7f20950 100755
--- a/generator/generator
+++ b/generator/generator
@@ -1836,9 +1836,8 @@ C<nbd_pread>.";
"aio_pread_callback", {
default_call with
- args = [ BytesPersistOut ("buf", "count"); UInt64 "offset";
- Closure completion_closure ];
- optargs = [ OFlags ("flags", cmd_flags) ];
+ args = [ BytesPersistOut ("buf", "count"); UI...
2019 Aug 13
0
[PATCH libnbd v2 2/3] lib: Make all completion callbacks into OClosures.
.../tests/test_590_aio_copy.ml | 5 +--
4 files changed, 30 insertions(+), 28 deletions(-)
diff --git a/generator/generator b/generator/generator
index 8f15786..6ccfc5f 100755
--- a/generator/generator
+++ b/generator/generator
@@ -1836,9 +1836,8 @@ C<nbd_pread>.";
"aio_pread_callback", {
default_call with
- args = [ BytesPersistOut ("buf", "count"); UInt64 "offset";
- Closure completion_closure ];
- optargs = [ OFlags ("flags", cmd_flags) ];
+ args = [ BytesPersistOut ("buf", "count"); UI...
2019 Aug 13
2
[PATCH libnbd] api: Rename nbd_aio_*_callback to nbd_aio_*.
This applies on top of the OClosure v2 series posted a few
minutes ago.
Rich.
2019 Aug 13
7
[PATCH libnbd v2 0/3] Implement OClosures.
v1 was here:
https://www.redhat.com/archives/libguestfs/2019-August/msg00168.html
I pushed uncontroversial patches 1-4
v2:
- The implementation of OClosure (new patch 1) in Python is fixed.
- Patch 2 (old patch 5) is unchanged.
- I added a new API for removing debug callbacks. I think this
approach has some advantages over using OClosure.
- I didn't yet do any work on changing the
2019 Aug 12
2
Re: [PATCH libnbd 1/7] api: Add semi-private function for freeing persistent data.
...zeof *wrap);
wrap->buf = malloc (sizeof (*wrap->buf));
caml_register_generational_global_root (wrap->buf);
struct nbd_buffer *buf_buf = NBD_buffer_val (bufv);
const void *buf = buf_buf->data;
size_t count = buf_buf->len;
if (in nbd_aio_pread) {
wrap->callback = NULL;
res = nbd_aio_pread_callback(h, buf, count, offset,
NULL, free_cb, wrap,
flags);
} else /* in nbd_aio_pread_callback */ {
wrap->callback = ...;
res = nbd_aio_pread_callback(h, buf, count, offset,
completion_cb, free_cb, wrap,...
2019 Aug 13
12
[PATCH 0/6] Implement OClosure.
...change but not
significantly).
I've run out of time on this patch today because I've got meetings for
the rest of the day (and it's only 11am!) However if I did have more
time there would be a 7th patch in the series which renames all
aio_*_callback functions to simply aio_*. eg. nbd_aio_pread_callback
is renamed to nbd_aio_pread (and old nbd_aio_pread is removed). That
is obviously a somewhat large albeit it mechanical API change.
Rich.
2019 Aug 13
0
[PATCH libnbd] api: Rename nbd_aio_*_callback to nbd_aio_*.
...1a03..aeecaee 100644
--- a/docs/libnbd.pod
+++ b/docs/libnbd.pod
@@ -276,9 +276,8 @@ command has completed:
}
For almost all high level synchronous calls (eg. C<nbd_pread>) there
-are two low level asynchronous equivalents (eg. C<nbd_aio_pread> for
-starting a command, and C<nbd_aio_pread_callback> for also registering
-a callback to be invoked right before the command is complete).
+is a low level asynchronous equivalents (eg. C<nbd_aio_pread> for
+starting a command).
=head2 glib2 integration
@@ -600,8 +599,8 @@ will use your login name):
=head1 CALLBACKS
Some libnbd call...
2019 Aug 13
0
[PATCH libnbd 1/6] generator: Share single list of all Closures.
...able (Int "error")] } ];
+ args = [ UInt64 "count"; UInt64 "offset"; Closure extent_closure ];
optargs = [ OFlags ("flags", cmd_flags) ];
ret = RErr;
permitted_states = [ Connected ];
@@ -1820,8 +1836,7 @@ C<nbd_pread>.";
"aio_pread_callback", {
default_call with
args = [ BytesPersistOut ("buf", "count"); UInt64 "offset";
- Closure { cbname="completion";
- cbargs=[CBMutable (Int "error")] } ];
+ Closure completion_closure ];...
2019 Aug 12
0
[PATCH libnbd 3/7] ocaml: Remove NBD.Buffer.free function, use a free callback instead.
...ll
-returns.
-
-For these cases you must create a C<NBD.Buffer.t> and ensure that it
-is not garbage collected until the command completes. The easiest way
-to do this is to use the C<*_callback> variants and free the buffer in
-the callback:
-
- let buf = NBD.Buffer.alloc 512 in
- NBD.aio_pread_callback h buf 0_L (
- (* This is called when the command has completed. *)
- fun _ ->
- NBD.Buffer.free buf;
- (* Returning 1 from this callback auto-retires the command. *)
- 1
- )
-
=head1 EXAMPLES
This directory contains examples written in OCaml:
diff --git a/ocaml/nbd-c.h b/ocam...
2019 Aug 14
0
[PATCH libnbd 2/2] ocaml: Remove NBD.Buffer.free function, use the completion callback instead.
...ll
-returns.
-
-For these cases you must create a C<NBD.Buffer.t> and ensure that it
-is not garbage collected until the command completes. The easiest way
-to do this is to use the C<*_callback> variants and free the buffer in
-the callback:
-
- let buf = NBD.Buffer.alloc 512 in
- NBD.aio_pread_callback h buf 0_L (
- (* This is called when the command has completed. *)
- fun _ ->
- NBD.Buffer.free buf;
- (* Returning 1 from this callback auto-retires the command. *)
- 1
- )
-
=head1 EXAMPLES
This directory contains examples written in OCaml:
diff --git a/ocaml/tests/test_590...
2019 Aug 12
2
Re: [PATCH libnbd 1/7] api: Add semi-private function for freeing persistent data.
On 8/12/19 11:08 AM, Richard W.M. Jones wrote:
> This adds a C-only semi-private function for freeing various types of
> persistent data passed to libnbd.
>
> There are some similarities with nbd_add_close_callback which we
> removed in commit 7f191b150b52ed50098976309a6af883d245fc56.
> ---
> +=head1 FREE CALLBACKS
> +
> +B<Note:> The API described in this
2019 Aug 11
4
[PATCH libnbd v2 0/3] python: Add test for doing asynch copy.
v1 was here:
https://www.redhat.com/archives/libguestfs/2019-August/msg00103.html
In v2 I've made several changes:
- Fix Python callbacks so if they don't return something
which is int-like, we assume they mean to return 0.
- Add nbd.Buffer free() method. Read commit message in
patch 2 to see what this is about.
- Fixed the asynch copy test to deal with the unbelievably
2019 Jun 18
0
[libnbd PATCH 6/8] states: Add nbd_pread_callback API
...r the entire request.
The C<flags> parameter must be C<0> for now (it exists for future NBD
protocol extensions).";
@@ -1591,6 +1656,26 @@ C<buf> is valid until the command has completed. Other
parameters behave as documented in C<nbd_pread>.";
};
+ "aio_pread_callback", {
+ default_call with
+ args = [ BytesPersistOut ("buf", "count"); UInt64 "offset";
+ Opaque "data";
+ CallbackPersist ("chunk", [Opaque "data";
+ BytesIn ("b...
2019 Aug 14
4
[PATCH libnbd 0/2] Use free callback to dereference NBD.Buffer.
In this patch series we use the newly introduced free callback
on the completion function to dererence the OCaml NBD.Buffer.
I will make the same kind of change for Python later in a
separate series.
The completion function is always called at the C level, even
if the OCaml program didn't use the optional argument. That's
because the free callback doesn't run otherwise.
There is a
2019 Aug 03
1
[PATCH libnbd] generator: Generate typedefs automatically for Closure arguments.
...e { cbname="debug_fn";
+ args = [ Closure { cbname="debug";
cbargs=[String "context"; String "msg"] } ];
ret = RErr;
shortdesc = "set the debug callback";
@@ -1731,7 +1731,7 @@ C<nbd_pread>.";
"aio_pread_callback", {
default_call with
args = [ BytesPersistOut ("buf", "count"); UInt64 "offset";
- Closure { cbname="callback";
+ Closure { cbname="completion";
cbargs=[Mutable (Int "error")]...
2019 Jul 16
2
[PATCH libnbd] generator: Define new Closure type
** INCOMPLETE **
This is the generator change as discussed on the list already.
The Python and OCaml bindings are not yet done.
It passes all [C only] tests and valgrind.
Note that nbd_add_close_callback is inconsistent with other closure
types because it passes the user_data parameter after the function.
(This is not caused by the current patch, it was already
inconsistent). We decided that
2019 Aug 10
7
[PATCH libnbd 0/5] WIP: python: Add test for doing asynch copy.
This doesn't yet work. However it does make me more convinced than
ever that we really need to sort out persistent buffer lifetimes in
the library (similar to what we did for closures).
Rich.