Go to file
Fabiano Fidêncio d2c136b020 events: don't reschedule deleted timeouts/watches
The deletion of libvirt timeouts/watches is done in 2 steps:
- the first step is synchronous and unregisters the timeout/watch
  from glib mainloop
- the second step is asynchronous and triggered from the first step.
  It releases the memory used for bookkeeping for the timeout/watch
  being deleted

This is done this way to avoid some possible deadlocks when
reentering the sync callback while freeing the memory associated
with the timeout/watch.

However, it's possible to call gvir_event_update_handle after
gvir_event_remove_handle but before _event_handle_remove does
the final cleanup. When this happen, _update_handle will reregister
the handle with glib mainloop, and bad things will happen when
a glib callback is triggered for this event after _event_handle_remove
has freed the memory associated with this handle watch.

This commit marks the timeouts and watches as removed in the
synchronous _remove callback and makes sure removed timeouts/watches
are ignored in _update callbacks.

Based on commit 3e73e0cee977fb20dd29db3ccfe85b00cc386c43 from
libvirt-glib.
Original author: Christophe Fergeau <cfergeau@redhat.com>

Related to: rhbz#1243228
2015-07-22 14:56:57 +02:00
build-aux Import GNULIB rules for syntax checking code 2012-02-06 12:42:23 +00:00
data msi: drop gtk2 support 2015-06-23 17:39:04 +02:00
icons Add virt-viewer-usb.png 2014-11-24 14:14:14 +01:00
m4 build-sys: use git.mk to generate gitignore 2012-03-30 14:48:13 +02:00
man vv-file: Add 'newer-version-url' key to .vv files 2015-06-09 18:06:39 +02:00
po remote-viewer-connect: Changed hardcoded UI into XML 2015-06-16 14:11:00 +02:00
src events: don't reschedule deleted timeouts/watches 2015-07-22 14:56:57 +02:00
.mailmap update .mailmap 2012-03-01 16:20:25 +01:00
acinclude.m4 Turn off deprecation warnings 2013-02-13 15:20:11 +00:00
AUTHORS.in Auto-generate AUTHORS file from GIT logs 2013-02-13 15:17:57 +00:00
autobuild.sh Tweak autobuild.sh to facilitate release builds 2015-01-12 11:27:56 +00:00
autogen.sh Auto-generate AUTHORS file from GIT logs 2013-02-13 15:17:57 +00:00
cfg.mk Delete browser plugin entirely 2013-03-13 11:47:42 +00:00
ChangeLog Automatically generate changelog from GIT history during make dist 2011-11-07 12:42:15 +00:00
configure.ac configure: Require spice-protocol 0.12.7 2015-06-16 09:28:27 +02:00
COPYING Added COPYING/INSTALL files 2007-08-15 20:22:40 -04:00
git.mk Fix some syntax violations in git.mk 2012-04-05 09:27:24 +01:00
GNUmakefile Import GNULIB rules for syntax checking code 2012-02-06 12:42:23 +00:00
intltool-extract.in Add support for i18n of the UI 2010-01-11 16:01:20 +00:00
intltool-merge.in Add support for i18n of the UI 2010-01-11 16:01:20 +00:00
intltool-update.in Add support for i18n of the UI 2010-01-11 16:01:20 +00:00
maint.mk Adapt 'po file' syntax check to look at more files 2013-02-13 15:18:19 +00:00
Makefile.am build-sys: Ship mingw-virt-viewer.spec in tarballs 2015-04-15 11:51:08 +02:00
mingw-virt-viewer.spec.in mingw,spec: Fix mingw-gstreamer1-plugins-bad-free name 2015-06-24 14:34:48 +02:00
NEWS Update NEWS for 2.0 release 2015-01-12 17:39:20 +00:00
README Update spice-gtk requirement everywhere 2013-12-18 15:42:24 +01:00
virt-viewer.spec.in spec: Add virt-viewer-preferences.xml 2015-03-12 18:09:28 +01:00

  Virt Viewer
  ===========

Virt Viewer provides a graphical viewer for the guest OS
display. At this time is supports guest OS using the VNC
or SPICE protocols. Further protocols may be supported in
the future as user demand dicatates. The viewer can connect
directly to both local and remotely hosted guest OS, optionally
using SSL/TLS encryption.

Virt Viewer can be built with either GTK2 or GTK3, with the
default option currently being GTK2. The choice can be made
with:

   ./configure --with-gtk=3.0  (or =2.0)

Virt Viewer uses the GTK-VNC (>= 0.4.3) widget to provide a
display of the VNC protocol, which is available from

  http://gtk-vnc.sourceforge.net/

Virt Viewer uses the SPICE-GTK (>= 0.22) widget to provide a
display of the SPICE protocol, which is available from:

  http://spice-space.org/page/Spice-Gtk

Use of either SPICE-GTK or GTK-VNC can be disabled at time
of configure, with --without-gtk-vnc or --without-spice-gtk
respectively.

Virt Viewer uses libvirt to lookup information about the
guest OS display. This is available from

  http://libvirt.org/

Further information about the Virt Viewer application can be
found on the Virt Manager website:

  http://virt-manager.org/

Feedback should be directed to the mailing list at

  http://virt-manager.org/mailinglist.html

-- End