I've created a workable async framework with the latest nbdkit code and a
sample file plugin using aio to service requests. This allows for a single
worker thread to issue multiple requests in parallel via a callback
mechanism. Existing locking mechanisms are preserved and if an async thread
model sets THREAD_MODEL < PARALLEL then nbdkit continues to properly
serialize.

The changes are split into 3 commits:
1) backend plumbing changes required to keep the memory for requests around
until completed
2) the async plugin backend
3) a sample plugin that uses aio and the async plugin backend

The patches would be large so rather than post them all here I've included
a link to the github diff

https://github.com/libguestfs/nbdkit/compare/master...dev-cloudbd:async
_______________________________________________
Libguestfs mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libguestfs

Reply via email to