1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-02-07 05:57:30 +03:00
Daniel P. Berrange e970863746 Fix updating of haveTheBuck in RPC client to be race-free
When one thread passes the buck to another thread, it uses
virCondSignal to wake up the target thread. The variable
'haveTheBuck' is not updated in a race-free manner when
this occurs. The current thread sets it to false, and the
woken up thread sets it to true. There is a window where
a 3rd thread can come in and grab the buck.

Even if this didn't lead to crashes & deadlocks, this would
still result in unfairness in the buckpassing algorithm.

A better solution is to *never* set haveTheBuck to false
when we're passing the buck. Only set it to false when there
is no further thread waiting for the buck.

* src/rpc/virnetclient.c: Only set haveTheBuck to false
  if no thread is waiting
2011-12-08 11:27:19 +08:00
2011-12-01 14:12:59 -07:00
2011-12-03 17:11:56 -07:00
2011-12-01 14:12:59 -07:00
2011-12-05 10:14:55 -07:00
2011-12-05 13:02:54 +01:00
2011-12-03 17:11:56 -07:00
2011-11-24 11:44:08 +01:00
2009-07-08 16:17:51 +02:00
2011-11-30 12:38:17 -07:00
2011-10-13 09:21:02 -06:00
2011-11-09 09:03:33 -07:00
2011-08-19 07:20:10 -06:00
2011-12-01 14:12:59 -07:00
2009-07-16 15:06:42 +02:00
2011-12-05 11:29:32 -07:00

         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>
Description
Libvirt native C API and daemons
Readme 675 MiB
Languages
C 94.8%
Python 2%
Meson 0.9%
Shell 0.8%
Dockerfile 0.6%
Other 0.8%