Looks sensible, ACK series.
There's also a case for allowing plugins to choose the thread model
dynamically (using the same or a similar callback). At the moment we
are unable to choose a thread model in most of the language plugins
because they generally require the language interpreter to be
initialized after the nbdkit_plugin struct has been finalized.
For example in the Perl plugin, we don't create the interpreter until
‘.load’ is called, but that happens long after nbdkit_plugin struct
has been returned to the server. I think the only exceptions to this
rule are the natively compiled language plugins, ie. OCaml and Rust,
where we create the struct from the language.
Note also if we do this we can choose a new thread model ABI either
with gaps for future threading levels, or some other kind of ABI not
based on numbers. There is a case for having a threading model where
everything runs from the main thread (required by VDDK).
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/