Libvirt provides a portable, long term stable C API for managing the virtualization technologies provided by many operating systems. It includes support for QEMU, KVM, Xen, LXC, bhyve, Virtuozzo, VMware vCenter and ESX, VMware Desktop, Hyper-V, VirtualBox and the POWER Hypervisor.
Go to file
Jiri Denemark 6cc5c33eb5 threadpool: Switch to detached threads
Using joinable threads does not help anything, but it can lead to memory
leaks.

When a worker thread exits, it decreases nWorkers or nPrioWorkers and
once both nWorkers and nPrioWorkers are zero (i.e., the last worker is
gone), quit_cond is signaled. When freeing the pool we first tell all
threads to die and then we are waiting for both nWorkers and
nPrioWorkers to become zero. At this point we already know all threads
are gone. So the only reason for calling virThreadJoin of all workers is
to free the memory allocated for joinable threads. If we avoid
allocating this memory, we don't need to take care of freeing it.

Moreover, any memory associated with a worker thread which died before
we asked it to die (e.g., because virCondWait failed in the thread)
would be lost anyway since virThreadPoolFree calls virThreadJoin only
for threads which were running at the time virThreadPoolFree was called.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2015-05-21 14:35:02 +02:00
.gnulib@106a3866d0 maint: update to latest gnulib 2015-03-26 09:41:55 -06:00
build-aux bracket-spacing: Add syntax-check for unnecessary curly brackets 2014-11-14 17:13:36 +01:00
daemon daemon: Suppress logging of VIR_ERR_NO_DOMAIN_METADATA 2015-05-12 14:18:39 +02:00
docs libvirt: Introduce protected key mgmt ops 2015-05-18 09:53:13 +02:00
examples Apparmor: allow reading block-rbd.so 2015-04-24 10:47:42 +02:00
gnulib maint: fix date in local gnulib patch 2015-01-05 16:44:10 +00:00
include Document that virNodeGetInfo can return mhz == 0. 2015-05-12 10:08:43 +01:00
m4 maint: extend PIE support check 2015-05-11 20:08:47 +03:00
po Release of libvirt-1.2.15 2015-05-04 11:43:04 +08:00
src threadpool: Switch to detached threads 2015-05-21 14:35:02 +02:00
tests conf: Restore the XML parser context in virDomainMemoryDefParseXML 2015-05-21 11:06:18 +02:00
tools virsh: Improve handling of send-process-signal --pid. 2015-05-18 10:50:06 +02:00
.ctags maint: Make ctags work out of the box 2013-07-18 08:47:21 +02:00
.dir-locals.el
.gitignore maint: Ignore Vim swap files 2015-05-13 08:39:14 -06:00
.gitmodules
.mailmap maint: update .mailmap for recent contributions 2015-03-20 06:17:55 -06:00
AUTHORS.in AUTHORS: Add my email address to AUTHORS.in 2015-04-10 18:26:43 +03:00
autobuild.sh Disable libvirtd by default when building on Win32 2014-04-29 11:30:32 +01:00
autogen.sh maint: improve usage of autogen's --no-git 2015-02-06 11:35:29 -07:00
bootstrap maint: update to latest gnulib 2015-03-26 09:41:55 -06:00
bootstrap.conf Revert "bootstrap.conf: add check for flex" 2015-01-12 10:14:30 -07:00
cfg.mk Fix build --without-network 2015-05-13 15:04:41 +02:00
ChangeLog-old Fix typos in src/* 2014-04-21 16:49:08 -06:00
config-post.h build: fix build of virt-login-shell on systems with older gnutls 2013-10-22 09:41:50 -06:00
configure.ac Bump version to 1.2.16 for new dev cycle 2015-05-04 13:04:39 +02:00
COPYING maint: follow recommended practice for using LGPL 2013-05-20 14:15:21 -06:00
COPYING.LESSER maint: follow recommended practice for using LGPL 2013-05-20 14:15:21 -06:00
HACKING tests: Add VIR_TEST_REGENERATE_OUTPUT 2015-04-23 17:08:48 -04:00
libvirt-lxc.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc 2014-06-23 16:17:27 +01:00
libvirt-qemu.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc 2014-06-23 16:17:27 +01:00
libvirt.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc 2014-06-23 16:17:27 +01:00
libvirt.spec.in libxl: add logrotate config file 2015-05-05 09:08:11 -06:00
Makefile.am examples: Introduce domtop 2014-07-18 16:39:54 +02:00
Makefile.nonreentrant
mingw-libvirt.spec.in Move virConnect related APIs out of libvirt.h.in 2014-10-24 17:23:51 +01:00
README
README-hacking docs: update README-hacking 2014-05-06 16:20:24 -06:00
run.in Add PKG_CONFIG_PATH to run.in script. 2014-06-26 14:32:35 +01:00
TODO

         LibVirt : simple API for virtualization

  Libvirt is a C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes). It is free software
available under the GNU Lesser General Public License. Virtualization of
the Linux Operating System means the ability to run multiple instances of
Operating Systems concurrently on a single hardware system where the basic
resources are driven by a Linux instance. The library aim at providing
long term stable C API initially for the Xen paravirtualization but
should be able to integrate other virtualization mechanisms if needed.

Daniel Veillard <veillard@redhat.com>