it performs some long-running operation by accident).
The slave thread is defined in the Slave module (interface:
-'slave.mli') and all slave_* files. The Slave module also defines
-what commands are possible. Every other module and file is part of
-the main thread except for a few utility / library modules.
+'slave.mli') and the slave.ml implementation. The Slave module also
+defines what commands are possible. Every other module and file is
+part of the main thread except for a few utility modules.
The main thread starts in the module Main.
modules, eg:
module C = Libvirt.Connect
- module G = Guestfs
+ module Q = Queue
So when you see a function such as 'C.connect_readonly', it's really
the function 'connect_readonly' in the [nested] module